外观
一句话答案
将对象组织成树形结构,客户端统一处理叶子和容器节点,适合文件系统/菜单/组织架构等树形场景。
核心要点
适用: 树形结构(文件系统/菜单/组织架构)
核心: Component(抽象) → Leaf(叶子) / Composite(容器,含子Component列表)
客户端统一调用 component.operation(),不区分叶子和容器
追问与易错
追问方向:
- 什么时候用?
- Java IO 中有组合模式吗?
- 透明方式和安全方式区别?
易错点:
- ❌ 组合模式就是组合对象——核心是统一处理叶子和容器
- ❌ 所有树形结构都用组合——简单递归就够了
💡 记忆锚点
文件夹模式:文件和文件夹都叫"文件系统节点",双击文件夹递归展开、双击文件直接打开,客户端不用管点的是哪种,统一调用open()就行。树形结构(菜单/组织架构/目录)天然适配。