动机
- 软件在某些情况下,客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性等问题
定义
- 将对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性
要点
- 组合模式采用树形结构实现普遍存在的对象容器,从而将一对多的关系转化为一对一的关系,使得客户代码可以一致的处理对象和对象容器
- 将客户代码与复杂的对象容器结构解耦是组合模式的核心思想,解耦之后,客户代码将与纯粹的抽象接口发生依赖,而非与对象容器的内部实现结构发生依赖,从而更能应对变化
示例
![](https://img.haomeiwen.com/i11143861/66ca26bdc7b13734.png)
网友评论