组合模式(Composite Pattern)
1. 概念
Composite Pattern (又叫 部分-整体模式,Part-Whole),
composite objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly.
将对象组合成树形结构来表现“部分-整体”的层次结构,使客户以一致的方式来处理单个(叶子节点)对象和组合(树枝节点)对象。
2. 应用场景 --文件系统的File类(含文件和文件夹)
a. 维护和展示 部分-整体 关系的场景,如树形菜单、组织结构、文件系统。
b. 从一个整体中能够独立出部分模块或功能的场景。
3. 优点
a. 叶子节点(单个对象)、树枝节点(组合对象)对用户透明;即可以将相同的操作应用在组合对象和单个对象上。
b. 高层模块调用简单;局部和整体对调用者来说没有任何区别。
c. 节点增加自由。
4. 缺点
组合模式以牺牲单一职责原则来换取透明性:同一个节点既负责“组合方法”、又负责“操作方法”
5. 代码实践:
JDK:
•javax.swing.JComponent#add(Component)
•java.awt.Container#add(Component)
•java.util.Map#putAll(Map)
•java.util.List#addAll(Collection)
•java.util.Set#addAll(Collection)
Android: TBD
网友评论