Skip to content
进阶

一句话答案

将对象组织成树形结构,客户端统一处理叶子和容器节点,适合文件系统/菜单/组织架构等树形场景。

核心要点

适用: 树形结构(文件系统/菜单/组织架构)

核心: Component(抽象) → Leaf(叶子) / Composite(容器,含子Component列表)

客户端统一调用 component.operation(),不区分叶子和容器

追问与易错

追问方向:

  • 什么时候用?
  • Java IO 中有组合模式吗?
  • 透明方式和安全方式区别?

易错点:

  • ❌ 组合模式就是组合对象——核心是统一处理叶子和容器
  • ❌ 所有树形结构都用组合——简单递归就够了

💡 记忆锚点

文件夹模式:文件和文件夹都叫"文件系统节点",双击文件夹递归展开、双击文件直接打开,客户端不用管点的是哪种,统一调用open()就行。树形结构(菜单/组织架构/目录)天然适配。