组合模式设计模式
组合模式定义
组合模式将对象组合成树形结构以表示 “部分-整体” 的层次结构。组合模式使得用户可以使用一致的方法操作单个对象和组合对象。
组合模式详解
使用场景
- 当想表达的对象的部分-整体的层次结构时候。
- 希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象时候。
图解
组合模式优缺点
优点
- 组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关系自己处理的是单个对象还是组合对象,这简化的客户端代码。
- 更容易在组合体内加入新的对象,客户端不会因为加入新的对象而更改源代码,满足开闭原则。
缺点
- 客户端需要花更多的时间理清类之间的层次关系。
- 不容易限制容器中的构建。
- 不容易用继承的方法来增加构建的新功能。
- 比较难限制组合中的组件类型。
组合模式总结
设计模式中组合模式解耦了客户程序与复杂元素内部结构,让客户端不再区分操作的是组合对象还是叶子对象,从而使客户程序可以像处理简单元素一样来处理复杂元素。