java设计模式(八)---组合模式

一、组合模式的定义:
组合模式允许你将对象组合成树形结构来表现“整体/部分”层次结构,组合让客户以一致的方式处理个别对象以及对象组合
二、涉及角色:
1.Component:
是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为,声明一个接口,用于访问和管理Component子类。
2.Leaf:
在组合汇总表示叶子节点对象,叶子节点没有子节点
3.Composite:
定义有枝节点行为,用来存储子部件,在Component接口中实现与子部件有关的操作,如添加新节点和删除节点。
三、组合模式的优缺点:
1.优点:
可以清楚的定义分层的复杂对象,表示对象的全部或部分层次,使得增加新构件也比较容易。
客户端调用简单,可以一致的使用组合结构或者其中的单个对象。
定义了包含子叶对象和容器对象的层次结构,叶子对象可以被组合成复杂的容器对象,而这个容器对象又可以被组合,这样不断递归,可以形成复杂的树形结构。
更容易在组合体内加入对象构件,客户端不必因加入新的对象而更改原有代码。
2.缺点:
使设计变得更加抽象,对象的业务规则如果很复杂,则实现组合模式会很繁琐,而且不是所有的方法都鱼叶子对象子类关联
四、适用场景
适用于树形结构的业务,例如常用的文件夹、菜单、组织架构等等。
五、具体实现
1.Component
Component
2.Leaf
Leaf
3.Composite
Composite
4.使用
使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值