组合模式 (Composite Pattern)
组合模式 (Composite Pattern) 是一种结构型设计模式,它将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
一、基础
1 意图
-
将对象组合成树形结构以表示“部分-整体”的层次结构。
-
使得用户对单个对象和组合对象的使用具有一致性。
2 适用场景
-
当你想表示对象的部分-整体层次结构时。
-
当你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象时。
3 结构
- 组件(Component):定义组合中对象的接口,声明了管理子组件的方法,如添加、删除子组件等,同时也声明了供客户端调用的业务方法。它可以是抽象类或接口。
- 叶节点(Leaf):代表组合中的叶节点对象,它没有子组件。叶节点实现了组件接口中声明的业务方法,但对于管理子组件的方法(如添加、删除)通常会抛出异常或不做任何处理,因为叶节点不包含子组件。
- 容器(Composite):代表组合中的容器对象,它包含子组件,可以是叶节点或其他容