Android 设计模式入门到精通之十一:组合模式(Composite Pattern,部分-整体模式)

组合模式(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

你可能感兴趣的:(Android 设计模式入门到精通之十一:组合模式(Composite Pattern,部分-整体模式))