四个模式各有一句人话
适配器是“接口不合,帮你转一下”;装饰器是“对象能用,但我想动态加点功能”;代理是“你别直接访问目标对象,先经过我”;组合是“单个对象和组合对象,希望用同一套方式处理”。
这四句话比死背定义更适合考场。因为题目往往把业务写得很长,但真正起作用的信号词就藏在这几类意图里。
| 模式 | 题干信号 | 一句话判断 |
|---|---|---|
| 适配器 | 旧接口、新接口、不兼容、复用已有组件 | 把接口转换成客户端需要的样子 |
| 装饰器 | 日志、缓存、压缩、加密、动态叠加功能 | 不改原对象,给对象加职责 |
| 代理 | 权限控制、远程访问、延迟加载、访问替身 | 通过代理对象控制访问 |
| 组合 | 树形结构、整体-部分、统一处理叶子和容器 | 单个和组合都按同一接口处理 |
装饰器和代理最像,但题眼不同
装饰器和代理都可能包一层,所以很多同学一看到中间对象就乱选。区别在于:装饰器重点是增强功能,而且这些功能常常可以一层层叠加;代理重点是控制访问或提供一个替身。
比如给文件流增加压缩、加密、缓冲,像装饰器;访问大图片前先用占位对象,真正需要时再加载,像虚拟代理。
组合模式别和 UML 组合关系混成一团
组合模式是一种设计模式,强调树形结构和一致处理;UML 组合关系是一种类图关系,强调强整体-部分和生命周期绑定。它们名字接近,但不是同一个考点。
题干如果说文件和文件夹、菜单和菜单项、图形和图形组,并强调客户端统一调用,通常才是组合模式。
相关题目解析
下面这些题目和本专题的判断方法关联较强,适合读完概念后回到具体题干里校验理解。
- 适配器模式主要解决什么设计问题?2026年真题考点 / 适配器模式
- 装饰器模式和代理模式怎么区分?设计模式 / 装饰器模式
- 组合模式适合解决什么问题?设计模式 / 组合模式
- UML 类图中聚合和组合有什么区别?UML 类图 / 聚合