设计模式 - 组合模式
定义
Compose objects into tree structures to represent part-whole hierarchies.
Composite lets clients treat individual objects and compositions of objects uniformly.
UML
实例
UI视图、用户控件
- 需要实现树状对象结构。
- 以相同方式处理简单和复杂元素。
比较
桥接模式、状态模式、策略模式、适配器模式,都是基于组合模式,即将工作委派给其他对象,不过也各自解决了不同的问题。
比较 | 组合模式 | 备注 |
---|---|---|
建造者模式 | 创建复杂组合树时使用建造者模式,以递归进行构造 | |
责任链模式 | 责任链和组合结合,叶组件接收到请求后,可以将请求沿着包含全体父组件的链一直传递至对象树的底部 | |
迭代器模式 | 迭代器可以遍历组合树 | |
访问者模式 | 访问者可以对整个组合树执行操作 | |
享元模式 | 享元实现组合树的叶结点共享以节省内存 | |
装饰模式 | 组合仅对子结点的结果进行汇总 | 装饰只有一个子组件,为被封装对象添加额外的职责;可以使用装饰来扩展组合树中特定对象的行为 |