ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 概述 亦称:对象树、Object Tree、Composite **组合模式**是一种结构型设计模式,你可以使用它**将对象组合成树状结构**,并且能像使用独立对象一样使用它们。 如果应用的核心模型能用树状结构表示,在应用中使用组合模式才有价值。 如 ![](https://img.kancloud.cn/f9/94/f994a9d70220f1a2828bd545cfb0fdde_740x740.png) ![](https://img.kancloud.cn/8b/3a/8b3a838982a48c467121c1e42ea1aa11_560x460.png) ## 组合模式结构 ![](https://img.kancloud.cn/52/68/5268fc1d874baad854bc9740cc4c076d_720x880.png) 1. 组件 (Component) 接口描述了树中简单项目和复杂项目所共有的操作。 2. 叶节点 (Leaf) 是树的基本结构, 它不包含子项目。 3. 容器 (Container)——又名 “组合 (Composite)”——是包含叶节点或其他容器等子项目的单位。 容器不知道其子项目所属的具体类, 它只通过通用的组件接口与其子项目交互。 4. 客户端 (Client) 通过组件接口与所有项目交互。 因此, 客户端能以相同方式与树状结构中的简单或复杂项目交互。 ### 适合应用场景 - 如果你需要实现树状对象结构,可以使用组合模式。 - 如果你希望客户端代码以相同方式处理简单和复杂元素,可以使用该模式。