结构型模式(7 种)
更新时间:2026-08-25。结构型模式解决"怎么把类与对象组装成更大的结构"——在不改变职责的前提下,通过继承/组合调整结构的形状。每种模式独立成文,均含"不使用 vs 使用"类图对比与分析。
| 模式 | 一句话定位 | 解决的核心矛盾 |
|---|---|---|
| 适配器 Adapter | 把不兼容接口翻译成客户端要的 | 接口不一致且两边都不能改 |
| 桥接 Bridge | 抽象与实现拆成两个维度 | 继承矩阵 N×M 爆炸 |
| 组合 Composite | 叶子与容器用同一接口 | 树形结构要无差别处理 |
| 装饰器 Decorator | 逐层贴能力不改本尊 | 能力组合 2^n 爆炸 |
| 外观 Facade | 给子系统一个简单门口 | 客户端被子系统协作绑架 |
| 享元 Flyweight | 重复的共享、独立的外置 | 海量对象内存爆炸 |
| 代理 Proxy | 替身挡在前面控制访问 | 访问真身太贵/太远/太危险 |
选型速查
| 场景 | 首选 |
|---|---|
| 接口不匹配、双方不可改 | 适配器 |
| 两个维度独立扩展 | 桥接 |
| 树形结构统一处理 | 组合 |
| 能力按需叠加 | 装饰器 |
| 子系统复杂、要简单入口 | 外观 |
| 海量重复状态对象 | 享元 |
| 访问需控制(懒加载/权限/缓存) | 代理 |
一句话总结:结构型模式调整结构的形状——适配器翻译接口、桥接拆分维度、组合统一树形、装饰器叠加能力、外观收敛入口、享元共享状态、代理控制访问。