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

相关文章:

  • 2021-11-18
  • 2021-11-18
  • 2021-07-23
  • 2021-07-27
  • 2021-11-24
  • 2021-08-14
  • 2021-12-07
猜你喜欢
  • 2021-12-10
  • 2022-12-23
  • 2021-09-10
  • 2021-08-16
  • 2022-12-23
  • 2021-12-10
  • 2021-11-18
相关资源
相似解决方案