组合模式(Composite Pattern)

标签(空格分隔): 设计模式


组合模式是结构型模式,在表示一种关系时使用。

  1. 将对象组合成树形结构以表示"部分-整体"的层次结构(文件夹与文件,树枝和叶子,部门与员工)。类似递归。
  2. 客户程序可以像处理简单元素一样来处理复杂元素。

UML类结构图

Component:是组合中的对象声明接口,实现所有类共有接口的默认行为(即所有Operation())。声明几个接口方法用于访问和管理Component子部件(Add()Remove()等)。
Leaf:在组合树中表示叶节点对象,叶节点没有子节点。并在组合中定义图元对象的行为。
Composite:递归存储子部件列表,并实现管理子部件的行为的方法。
Client:客户程序,通过component接口操纵组合部件的对象。


例子:

  1. Employee接口即Component,可以表示一个员工,也可以表示一个部门。所以设计时Employee接口里面组合一个Employee列表。
  2. 例子:算术表达式包括操作数和操作符,但操作数也可以是操作树和操作符。
原文地址:https://www.cnblogs.com/banyu/p/6649640.html