组合模式:允许将对象组合成树型结构来表现“整体/部分”层次结构。组合能让一致的方式处理个别对象以及对象组合。
接上一篇**设计模式系列之十迭代器模式**的业务逻辑,现在集团公司业务扩张,新增了湖南分公司,那么采用迭代器模式可以很方便的打印出湖南分公司的所有部门。
一、新需求实现
1 | //湖南分公司 |
1 | //湖南分公司的部门迭代器 |
1 | public class TestNew { |
依次类推,如果再设立其它省份的分公司一样的可以很快增加上去。但是,如果需要在湖南分公司下再设立下隶属于湖南分公司的长沙分公司呢?此时,整个结构变为一棵树型结构。
二、组合模式使用
可使用组合模式来表现“整体/部分”层次结构。
1 | //不管是分子机构,还是分支机构下的部门对象都需要继承组件对象 |
1 | //分支机构,即父节点 |
1 | //机构中的部门对象,即叶子节点 |
1 | //测试代码 |
从上面的代码中可以看出,核心在于父节点与叶子节点都属于Component
,才能组合在一起,实现递归打印。
上一篇:设计模式系列之十迭代器模式
下一篇:设计模式系列之十二状态模式