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