^

Young Anything I do that may help others, I'll post it here.

Composite Pattern

组合模式

将对象组合到树结构中以表示部分-整体层次结构。Composite允许客户端统一地处理单个对象和对象的组合。

抽象出枝节点和叶节点的统一的行为接口,让client端可以对他们一视同仁,简化操作。

何时使用

  1. 需求中是体现部分和整体层次结构时;
  2. 希望用户可以忽略组合对象与单个对象的不同,统一使用组合结构中的所有对象时;
  3. 想要分发什么东西到对象时。

优点

  1. 基本对象可悲组合为更复杂的组合对象,用到基本对象的地方都可以使用组合对象;
  2. 用户不用关心到底是处理叶节点还是一个组合组件,也不用为定义组合而写一些判断语句。即客户可以一致地使用组合结构和单个对象。

composite