组合模式
基本介绍
- 组合模式,又叫部分整体模式、他创建了对象组的属性结构,将对象组合成树状结构以表示“整体 - 部分”的层次关系
- 组合模式依据属性结构来组合对象,用来表示部分以及整体层次
- 这种类型的设计模式属于结构型模式
- 组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象
组合模式原理结构图说明:
- Component:这是组合中对象的声明接口,在适当情况下,实现所有类共有的接口默认行为,用于访问和管理Component子部件,可以是抽象类也可以是接口
- Leaf:在组合中表示叶子节点,叶子节点是被管理者
- Composite:非叶子节点,用于存储子部件,在Component接口中实现子部件的相关操作,比如增加、删除等
组合模式的注意事项和细节
- 简化操作,编写时只需面对一致的对象而不用考虑整体部分或者节点叶子的问题
- 具有较强的扩展性,当需要更改组合对象时,只需调整内部的层次关系
- 方便创建出复杂的层次结构,不用理会组合里面的组成细节,容易添加节点或者叶子从而创建出复杂的属性结构
- 需要遍历组织机构,或者处理的对象具有树形结构时,非常适合使用组合模式
- 要求较高的抽象性,如果节点和叶子有很多差异性的话,比如很多方法和属性都不一样,则不适合使用组合模式