-
特点:Decorator模式与Composite模式类似,Composite模式是以容器结构化、一致性管理为核心,存在一对多的关系,而Decorator模式有锦上添花之意,只存在一对一的关系。
比如蛋糕抹上奶油,就是奶油蛋糕,再加上巧克力就是巧克力奶油蛋糕,再插上蜡烛,就是生日蛋糕,但他们本质,就是一个蛋糕。
继承和委托的一致性:像类似Decorator模式同时使用到继承和委托,两种实现方式同时体现了不同的一致性,就是因为这种一致性才有了各种巧妙的设计模式。
- 角色:
角色名称 | 角色职责 |
---|---|
Component | 定义基础的核心功能API |
Concrete Component | 实现基础核心功能API,通常被视为被装饰物 |
Decorator(装饰物) | 需要持有一个Component(被装饰物)的实例 |
Concrete Decorator(具体装饰物) | 继承Decorator实现装饰功能 |
-
角色关系:
Decorator.png
-
代码示例:Decorator
以上文献参考:《图解设计模式》
网友评论