设计模式(数据结构)—— 组合模式
组合模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。
场景还原(公司组织架构):
上图是一个公司的组织结构图,总部下面有多个子公司,同时总部也有各个部门,子公司下面有多个部门。如果对这样的公司开发一个OA系统,作为程序猿的你,如何设计这个OA系统呢?
UML类图阐述:
模式结构:
1)Component:
- 为组合中的对象声明接口;
- 在适当的情况下,实现所有类共有接口的缺省行为;
- 声明一个接口用于访问和管理Component的子组件。
2)Leaf:
- 在组合中表示叶节点对象,叶节点没有子节点;
- 在组合中定义叶节点的行为。
3)Composite:
- 定义有子部件的那些部件的行为;
- 存储子部件。
4)Client:
通过Component接口操作组合部件的对象。
更多C++示例代码,请移步到本人的github。
设计模式,祝愿你把代码写成艺术。
6/27/2017 11:33:11 AM