设计模式 - 装饰者模式
1.设计模式6原则 2.设计模式23种3.设计模式 - 单例模式4.设计模式 - 原型模式5.设计模式 - 抽象工厂6.设计模式 - 工厂方法7.设计模式 - 解释器模式8.设计模式 - 代理模式9.设计模式 - 外观模式
10.设计模式 - 装饰者模式
11.设计模式 - 组合模式12.设计模式 - 适配器模式13.设计模式 - 桥接模式14.设计模式 - 建造者模式15.设计模式 - 享元模式16.设计模式 - 策略模式17.设计模式 - 访问者模式18.设计模式 - 状态模式19.设计模式 - 迭代器模式20.设计模式 - 观察者模式21.设计模式 - 命令模式22.设计模式 - 中介者模式23.设计模式 - 备忘录模式24.设计模式 - 职责链模式25.设计模式 - 模板方法模式定义
Attach additional responsibilities to an object dynamically.
Decorators provide a flexible alternative to subclassing for extending functionality.
UML
实例
类的扩展extend,串口接收数据,
- 无需修改代码即可使用对象,且在运行时为对象新增额外的行为。
- 不用继承来扩展对象行为。
比较
比较 | 装饰者模式 | 备注 |
---|---|---|
适配器模式 | 装饰者能在不改变对象接口的前提下强化对象功能,支持递归组合 | 适配器对已有对象的接口进行修改,为被封装对象提供不同的接口,不支持递归 |
代理模式 | 装饰者为对象提供加强的接口 | 为对象提供相同的接口 |
责任链模式 | 各种装饰可以在遵循基本接口的情况下扩展对象的行为,无法中断请求的传递 | 责任链的管理者可以相互独立地执行一切操作,还可以随时停止传递请求 |
组合模式 | 装饰者类似于组合,但其只有一个子组件;为被封装对象添加额外的职责 | 组合仅对其子结点的结果进行汇总 |
策略模式 | 装饰者可以更改对象的外表 | 策略模式可以改变其本质 |
代理模式 | 装饰者的生成由客户端进行控制 | 代理自行管理其服务对象的生命周期 |
装饰者和代理有着相似的结构,都基于组合原则,即一个对象将部分工作委派给另外一个对象。
装饰者和组合的设计都可以和原型模式配合,用原型复制复杂结构,而非从零开始重新构造。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2021-04-21 Ling应用