组合模式设计模式

组合模式定义

组合模式将对象组合成树形结构以表示 “部分-整体” 的层次结构。组合模式使得用户可以使用一致的方法操作单个对象和组合对象。

组合模式详解

使用场景

  1. 当想表达的对象的部分-整体的层次结构时候。
  2. 希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象时候。

图解

10 组合模式流程图.png

组合模式优缺点

优点

  1. 组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关系自己处理的是单个对象还是组合对象,这简化的客户端代码。
  2. 更容易在组合体内加入新的对象,客户端不会因为加入新的对象而更改源代码,满足开闭原则。

缺点

  1. 客户端需要花更多的时间理清类之间的层次关系。
  2. 不容易限制容器中的构建。
  3. 不容易用继承的方法来增加构建的新功能。
  4. 比较难限制组合中的组件类型。

组合模式总结

设计模式中组合模式解耦了客户程序与复杂元素内部结构,让客户端不再区分操作的是组合对象还是叶子对象,从而使客户程序可以像处理简单元素一样来处理复杂元素。