美文网首页
装饰(包装)模式

装饰(包装)模式

作者: zhaoyubetter | 来源:发表于2016-10-11 11:03 被阅读33次

意图
装饰模式可在不改变原有对象的行为下,扩展其行为;
提供了比继承更有弹性的替代方案;

动态地给一个对象添加一些额外的职责;

别名:包装器(Wrapper)模式

来自Head First

  1. 装饰者和被装饰对象有相同的类型,这样客户端对象就可以用和真实对象相同的方式和装饰对象交互;
  2. 可用一个或多个装饰者包装一个对象;
  3. 在任何需要原始对象(被包装)的场合,可用装饰过的对象代替它(扩展原始对象的行为);
  4. 装饰者可在所委托被装饰者的行为之前或之后,加上装饰后的行为,以达到目的;
  5. 对象可在任何时候,被装饰,所以可以在运行时动态地、不限量的装饰者来装饰对象;
    6.装饰对象包含一个真实对象的引用;

示例类图:

Paste_Image.png

也可以将 被包装的类,放入 Decorator基类中,并设置成 protected类型的变量,这样做,其实更好,子类,就不需要维护 wrapped 对象了;

Paste_Image.png

装饰者模式中的角色

  1. 被装饰者抽象(Component):是一个抽象接口,或抽象类,也是该模式中的最元素的对象了;
  2. 被装饰者具体实现(ConcreteComponent),也是上图中的ComponentA;
    要装饰的就是这个具体的实现类,可以有多个,具体实现类,如: java io 体系;
  3. 装饰者基类(Decorator)可以是一个抽象类,或者类,用来实现被装饰者抽象(Component)中的方法,实现是通过 Componet 对象的引用来实现的;
  4. 装饰者实现,如上图中的(DecoratorA 与 DecoratorB)是具体的装饰者类,用来装饰最基本的类,如:ComponentA;

相关文章

  • 装饰者(Decorator)模式

    装饰者(Decorator)模式装饰模式又名包装(Wrapper)模式。装饰模式是继承关系的一个替代方案。装饰模式...

  • 2021-07-26 装饰器模式与代理模式

    装饰器模式 定义 装饰器模式(Decorator Pattern)也叫包装模式(Wrapper Pattern),...

  • Android设计模式——装饰模式(七大结构型)

    1.装饰模式介绍 装饰模式(Decorator Pattern)也称为包装模式(Wrapper Patte...

  • 装饰模式

    个人博客http://www.milovetingting.cn 装饰模式 模式介绍 装饰模式也称为包装模式,结构...

  • 装饰(包装)模式

    意图:装饰模式可在不改变原有对象的行为下,扩展其行为;提供了比继承更有弹性的替代方案; 动态地给一个对象添加一些额...

  • 装饰者模式

    在《JAVA与模式》一书开头是这样描述装饰(Decorator)模式的: 装饰模式又名包装模式。装饰模式以对客户端...

  • 设计模式之装饰器模式

    在阎宏博士的《JAVA与模式》的书中,对装饰器模式的描述如下:装饰模式又名包装(Wrapper)模式。装饰模式以对...

  • 装饰模式

    描述 装饰模式(Decorator Pattern)又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩...

  • 重学设计模式之装饰模式

    装饰模式 定义 装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一...

  • 装饰模式(Decrator)

    一、 什么是装饰模式 装饰模式又名包装模式(Wrapper)。装饰模式是以对客户端透明的方式扩展对象的功能,是继承...

网友评论

      本文标题:装饰(包装)模式

      本文链接:https://www.haomeiwen.com/subject/euzvyttx.html