设计模式(数据结构)—— 组合模式

组合模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。

场景还原(公司组织架构):


设计模式(数据结构)—— 组合模式

上图是一个公司的组织结构图,总部下面有多个子公司,同时总部也有各个部门,子公司下面有多个部门。如果对这样的公司开发一个OA系统,作为程序猿的你,如何设计这个OA系统呢?

UML类图阐述:


设计模式(数据结构)—— 组合模式

模式结构:

1)Component:

  • 为组合中的对象声明接口;
  • 在适当的情况下,实现所有类共有接口的缺省行为;
  • 声明一个接口用于访问和管理Component的子组件。

2)Leaf:

  • 在组合中表示叶节点对象,叶节点没有子节点;
  • 在组合中定义叶节点的行为。

3)Composite:

  • 定义有子部件的那些部件的行为;
  • 存储子部件。

4)Client:

通过Component接口操作组合部件的对象。

更多C++示例代码,请移步到本人的github。


设计模式,祝愿你把代码写成艺术。

6/27/2017 11:33:11 AM