第五章节 - 装饰模式

 

装饰模式 - 章节

 

概念
·也叫包装器
·添加不影响他人的行为
·不仅仅是继承
·单一职责原则
·组成动态行为
·例子:
- java.io.lnputStream
- java.util.Collections # checkedList
- UI组件


设计注意事项
继承的基础
利用组合和继承(is-a, has-a)
选择子类化
构造函数需要层次结构中的实例

UML图
第五章节 - 装饰模式

 

例子:File
第五章节 - 装饰模式
第五章节 - 装饰模式

 

训练:装饰模式
Component, ConcreteComponent, Decorator, ConcreteDecorator
创建装饰
实现另一个装饰
不是创造模式
第五章节 - 装饰模式

第五章节 - 装饰模式

第五章节 - 装饰模式

第五章节 - 装饰模式

第五章节 - 装饰模式

第五章节 - 装饰模式

 

陷阱
·每个新添加的功能都有一个新类
·多个小对象
·经常与简单的继承混淆


对比

组成模式
·树结构
·Leaf与Composite具有相同的接口
·对象之间的团结

装饰模式
·包含另一个实体
·修改行为(添加)
·不改变底层对象


装饰模式总结
·原始对象可以保持不变
·添加功能的独特方式
·与继承相混淆
·对于客户来说可能更复杂