组合模式
最后更新于:2022-04-02 04:19:50
[TOC]
## 概述
亦称:对象树、Object Tree、Composite
**组合模式**是一种结构型设计模式,你可以使用它**将对象组合成树状结构**,并且能像使用独立对象一样使用它们。
如果应用的核心模型能用树状结构表示,在应用中使用组合模式才有价值。
如


## 组合模式结构

1. 组件 (Component) 接口描述了树中简单项目和复杂项目所共有的操作。
2. 叶节点 (Leaf) 是树的基本结构, 它不包含子项目。
3. 容器 (Container)——又名 “组合 (Composite)”——是包含叶节点或其他容器等子项目的单位。 容器不知道其子项目所属的具体类, 它只通过通用的组件接口与其子项目交互。
4. 客户端 (Client) 通过组件接口与所有项目交互。 因此, 客户端能以相同方式与树状结构中的简单或复杂项目交互。
### 适合应用场景
- 如果你需要实现树状对象结构,可以使用组合模式。
- 如果你希望客户端代码以相同方式处理简单和复杂元素,可以使用该模式。
';