1.简介
- 组合模式将对象组合成树形结构以表示‘部分-整体’的层次结构。
- 组合模式使得用户对单个对象和组合对象的使用具有一致性。
- 组合模式属于结构型模式之一。
2.场景
1、当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与当个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑使用组合模式了。
3.优缺点
优点:
1、高层模块调用简单。
2、节点自由增加。
缺点:
在使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。
4. 图片模型
![](https://img.haomeiwen.com/i15731841/aa0c47f11de39507.png)
5. 代码实现
1 、公司的抽象类或者接口
![](https://img.haomeiwen.com/i15731841/225bf6d65591064d.png)
![](https://img.haomeiwen.com/i15731841/938caadc7a50dbd6.png)
2、具体公司的实现类,树枝节点
![](https://img.haomeiwen.com/i15731841/cff3ef01ddd18f83.png)
![](https://img.haomeiwen.com/i15731841/4959d60d76aac0b7.png)
3、人力资源部类和财务部类,树叶节点
![](https://img.haomeiwen.com/i15731841/7b685f060c4f3c1c.png)
![](https://img.haomeiwen.com/i15731841/451036128db543a9.png)
4、客户端调用
![](https://img.haomeiwen.com/i15731841/7429461fd30a5d30.png)
5、打印结果
![](https://img.haomeiwen.com/i15731841/44207867f87d2c2b.png)
网友评论