# 组合（Composition）

### 缩写：无

### 简述

通过持有其它对象并委托其能力来构建功能的方式，表达「有一个」而非「是一种」。组合降低层次耦合、便于运行时替换部件，是复杂系统更稳妥的默认结构手段。

### 使用场景

功能拼装、策略嵌入、中间件管道、领域聚合。

### 实践与应用

• 把变化点做成可替换组件
• 明确所有权与生命周期
• 委托而非暴露内部

### 注意事项

• 过深委托链难追踪
• 循环组合引用

### 对比与易混

| | 组合 | 继承 |
|--|------|------|
| 结构 | 持有并委托 | 沿父类型获得行为 |
| 默认建议 | 变化点优先组合 | 分类关系清晰时再用继承 |

### 关联术语

• 继承：用持有部件对照「是一种」复用
• 委托：把行为转交内部对象
• 封装：组合时仍应隐藏内部
• 依赖注入：外部注入被组合的依赖
