《设计模式之禅》笔记16 -- 组合模式
来源:互联网 发布:阿里云邮件推送 编辑:程序博客网 时间:2024/05/21 10:14
定义:组合模式也叫合成模式,有时又叫做部分-整体模式,主要用来描述部分和整体的关系。将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组
合对象的使用具有一致性。
一、组合模式的三个角色
1. 抽象构建角色:定义参加组合对象的共有方法和树形,可以定义一些默认的行为或属性。
2. 叶子构件:下面没有其他分支,遍历的最小单位。
3. 树枝构件:它的作用是组合树枝节点和叶子节点形成一个树形结构。
二、组合模式的优点
1. 高层模块简单调用。树形结构中所有节点都是抽象构建角色,局部调用和整体调用没有区别,高层模块不需要关心自己处理的是单个对象还是整个组合结构
2. 节点自由增加。
三、组合模式的缺点
树叶和树枝都使用实现类直接定义,不符合依赖倒置原则,使用组合模式时应该考虑清楚。
四、组合模式的使用场景
1. 维护和展示部分-整体关系,例如树形菜单,文件和文件夹
2.
从一个整体中能够独立出部分模块或功能的场景
五、组合模式的注意事项
只要是树形结构,就要考虑使用组合模式;只要是体现局部和整体关系,而且这种关系还比较紧密,可以考虑使用组合模式。
六、组合模式的扩展
1. 真实的组合模式
2. 透明的组合模式。组合模式有两种不同的实现:透明模式和安全模式。透明模式把用来组合使用的方法都放到抽象类中。透明模式的好处是它基本遵循了依赖倒置原则。
七、组合模式的遍历
从上往下和从下往上遍历
八、最佳实践
合对象的使用具有一致性。
一、组合模式的三个角色
1. 抽象构建角色:定义参加组合对象的共有方法和树形,可以定义一些默认的行为或属性。
2. 叶子构件:下面没有其他分支,遍历的最小单位。
3. 树枝构件:它的作用是组合树枝节点和叶子节点形成一个树形结构。
二、组合模式的优点
1. 高层模块简单调用。树形结构中所有节点都是抽象构建角色,局部调用和整体调用没有区别,高层模块不需要关心自己处理的是单个对象还是整个组合结构
2. 节点自由增加。
三、组合模式的缺点
树叶和树枝都使用实现类直接定义,不符合依赖倒置原则,使用组合模式时应该考虑清楚。
四、组合模式的使用场景
1. 维护和展示部分-整体关系,例如树形菜单,文件和文件夹
2.
从一个整体中能够独立出部分模块或功能的场景
五、组合模式的注意事项
只要是树形结构,就要考虑使用组合模式;只要是体现局部和整体关系,而且这种关系还比较紧密,可以考虑使用组合模式。
六、组合模式的扩展
1. 真实的组合模式
2. 透明的组合模式。组合模式有两种不同的实现:透明模式和安全模式。透明模式把用来组合使用的方法都放到抽象类中。透明模式的好处是它基本遵循了依赖倒置原则。
七、组合模式的遍历
从上往下和从下往上遍历
八、最佳实践
0 0
- 设计模式之禅笔记-组合模式
- 《设计模式之禅》笔记16 -- 组合模式
- 设计模式学习笔记之组合模式
- 设计模式笔记之---组合模式
- 设计模式学习笔记之组合模式
- 大话设计模式笔记之组合模式
- Java设计模式笔记之组合模式
- 设计模式笔记-组合模式
- 设计模式笔记--组合模式
- 设计模式笔记:组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之--组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- 设计模式之组合模式
- javascript var
- 基于ARM的nucleus plus的执行
- Print all nodes that are at distance k from a leaf node
- 用python写pintool
- 网络基本功(三):细说VLAN与Trunk
- 《设计模式之禅》笔记16 -- 组合模式
- myeclipse2014关闭html,jsp等页面的可视化编辑器
- Spring Framework源码(八):SpringMVC概览
- 设计模式几点原则
- 遍历可变数组的同时删除元素
- Spring(三) spring对jdbc的封装
- 网络基本功(四):细说路由(上)
- 建立主键应该遵循的原则
- 嵌入式Linux初学者眼中的世界