目录
1、实际的一个业务需求
编写程序展现一个学校院系结构:需求是这样的,要在一个页面中展现出学校的院系组成,一个学校有多个学院,一个学院有多个系。如图:

2、传统方案解决

3、传统方案存在问题分析
- 将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织大小来进行分层次的
- 实际上我们要求的是:在一个页面中展示出学校的院系组成,一个学校有多少个学院,一个学院有多少个系,因此这种方案,不能很好的实现管理的操作,比如对学院、系的添加,删除、遍历等
- 解决方案:把学校、院、系都看做是组织结构,他们之间没有继承的关系,而是一棵树形结构,可以更好的实现管理操作=》组合模式。
4、组合模式的基本介绍
- 组合模式(Composition Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树形结构以表示“整体-部分”的层次关系。
- 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。
- 这种组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象。
5、组合模式原理类图

- Component:这是组合中对象声明接口,在适当的情况下,实现所有类共有的接口默认行为,用户访问和管理Component子部件,Component可以是抽象类或者接口。
- Leaf:在组合中表示叶子节点,叶子节点没有子节点。
- Composite:非叶子节点,用户存储子部件,在Component接口中实现子部件的相关操作,比如增加(add),删除等
6、组合模式解决需求应用实例


本文详细介绍了组合模式在处理学校院系结构业务需求时的应用。传统方案将学院和系视为继承关系,但无法方便地进行添加、删除和遍历操作。通过采用组合模式,将学校、学院和系视为组织结构的组成部分,形成树形结构,实现了更灵活的管理操作。组合模式强调一致性地处理单个对象和组合对象,增强了系统的扩展性和抽象性,适合处理具有树形结构的对象。
&spm=1001.2101.3001.5002&articleId=107792098&d=1&t=3&u=c84c87cc6cc847d4896cdd26e38578fd)
3065

被折叠的 条评论
为什么被折叠?



