《设计模式之禅》笔记16 -- 组合模式

定义:组合模式也叫合成模式,有时又叫做部分-整体模式,主要用来描述部分和整体的关系。将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组


合对象的使用具有一致性。


一、组合模式的三个角色


1. 抽象构建角色:定义参加组合对象的共有方法和树形,可以定义一些默认的行为或属性。


2. 叶子构件:下面没有其他分支,遍历的最小单位。


3. 树枝构件:它的作用是组合树枝节点和叶子节点形成一个树形结构。


二、组合模式的优点


1. 高层模块简单调用。树形结构中所有节点都是抽象构建角色,局部调用和整体调用没有区别,高层模块不需要关心自己处理的是单个对象还是整个组合结构


2. 节点自由增加。


三、组合模式的缺点


树叶和树枝都使用实现类直接定义,不符合依赖倒置原则,使用组合模式时应该考虑清楚。


四、组合模式的使用场景


1. 维护和展示部分-整体关系,例如树形菜单,文件和文件夹


2. 
从一个整体中能够独立出部分模块或功能的场景


五、组合模式的注意事项


只要是树形结构,就要考虑使用组合模式;只要是体现局部和整体关系,而且这种关系还比较紧密,可以考虑使用组合模式。


六、组合模式的扩展


1. 真实的组合模式


2. 透明的组合模式。组合模式有两种不同的实现:透明模式和安全模式。透明模式把用来组合使用的方法都放到抽象类中。透明模式的好处是它基本遵循了依赖倒置原则。


七、组合模式的遍历


从上往下和从下往上遍历


八、最佳实践

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值