设计模式总结之Composite Pattern(组合模式)

目录

  • 设计模式分类
创建型设计模式:
  • Singleton Pattern(单例模式)   
  • Prototype Pattern(原型模式)
  • Factory Method Pattern(工厂方法模式)   
  • Abstract Factory Pattern(抽象工厂模式)
  • Builder Pattern(建造者模式)
结构型设计模式:
  • Adapter Pattern(适配器模式)   
  • Bridge Pattern(桥接模式)
  • Composite Pattern(组合模式)
  • Decorator Pattern(装饰者模式)
  • Façade Pattern(外观模式)
  • Flyweight Pattern(享元模式)
  • Proxy Pattern(代理模式)   
行为型设计模式:
  • Chain of Responsibility Pattern(职责链模式)
  • Command Pattern(命令模式)
  • Interpreter Pattern(解释器模式)   
  • Iterator Pattern(迭代器模式)
  • Mediator Pattern(中介者模式)
  • Memento Pattern(备忘录模式)
  • Observer Pattern(观察者模式)
  • State Pattern(状态模式)
  • Strategy Pattern(策略模式)
  • Template Method Pattern(模板方法模式)
  • Visitor Pattern(访问者模式)

Composite Pattern(组合模式)

  组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
  有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。
  组合模式让你可以优化处理递归或分级数据结构。有许多关于分级数据结构的例子,使得组合模式非常有用武之地。关于分 级数据结构的一个普遍性的例子是你每次使用电脑时所遇到的:文件系统。文件系统由目录和文件组成。每个目录都可以装内容。目录的内容可以是文件,也可以是目录。按照这种方式,计算机的文件系统就是以递归结构来组织的。如果你想要描述这样的数据结构,那么你可以使用组合模式Composite。


例子

设计模式总结之Composite Pattern(组合模式)_第1张图片

设计模式总结之Composite Pattern(组合模式)_第2张图片



意图:

(GoF《设计模式》):将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。


结构:

设计模式总结之Composite Pattern(组合模式)_第3张图片

涉及角色:
1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component子部件。
2.Leaf 在组合中表示叶子结点对象,叶子结点没有子结点。
3.Composite 定义有枝节点行为,用来存储子部件,在Component接口中实现与子部件有关操作,如增加(add)和删除(remove)等。

适用性:

以下情况下适用Composite模式:
1.你想表示对象的部分-整体层次结构
2.你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。

你可能感兴趣的:(Architecture)