组合模式(Composite Pattern)
标签(空格分隔): 设计模式
组合模式是结构型模式,在表示一种关系时使用。
- 将对象组合成树形结构以表示"部分-整体"的层次结构(文件夹与文件,树枝和叶子,部门与员工)。类似递归。
- 客户程序可以像处理简单元素一样来处理复杂元素。
UML类结构图
Component:是组合中的对象声明接口,实现所有类共有接口的默认行为(即所有Operation()
)。声明几个接口方法用于访问和管理Component子部件(Add()
,Remove()
等)。
Leaf:在组合树中表示叶节点对象,叶节点没有子节点。并在组合中定义图元对象的行为。
Composite:递归存储子部件列表,并实现管理子部件的行为的方法。
Client:客户程序,通过component接口操纵组合部件的对象。
例子:
- Employee接口即Component,可以表示一个员工,也可以表示一个部门。所以设计时Employee接口里面组合一个Employee列表。
- 例子:算术表达式包括操作数和操作符,但操作数也可以是操作树和操作符。