Composite

定义

  组合模式属于对象的结构模式,又叫部分-整体模式。

  组合模式将对象组合成树形结构来表现"整体/部分"层次结构。组合模式可以让客户端以一致的方式处理个别对象以及对象组合。

  目的是"统一处理个别对象和组合对象"。

树形结构由树枝,树叶组成。树枝上有树枝,树叶。树叶不可再分。

结构和角色

  

  抽象构建(Component)角色: 给参加组合的对象规定一个接口,这个角色给出共有的接口及其默认行为。

  树叶构建(Leaf)角色: 代表参加组合的树叶对象。一个树叶没有下级的子对象。定义出参加组合的原始对象的行为。

  树枝构建(Composite)角色: 代表参加组合的有子对象的对象。并给出树枝构建对象的行为。

system code ....

应用

  需要描述对象的部分和整体的等级结构。

  需要客户端忽略掉个体构件和组合构件的区别。客户端必须平等对待所有的构件,包括个体构件和组合构件。

  

优缺点

  组合模式可以很容易地增加新种类的构件。

  使用组合模式可以使客户端变得很容易设计,因为客户端不需要知道构件是树叶构件还是树枝构件。

  ---

  不太容易控制树枝构件的类型。

  使用继承的方法来增加新的行为很困难。

原文地址:https://www.cnblogs.com/shouwangzhe-/p/3683957.html