概念:
动态的给 一个对象
添加一些额外的职责。
使用场景
当系统需要新增功能的时候,通常的方法是向类中添加新代码,这些新加的代码通常装饰了原有类的核心职责,从而产生新的逻辑,这样就增加了主类的复杂度,而且又违反了 开关原则
,这些新加入的东西紧紧为了满足一些只在某种特定情况下才会执行的特殊行为的需要,这个时候可以采用装饰模式。
分析
- 经常喜欢吃板面,板面的
种类
有很多种类; - 我们知道板面在煮出来就是
一碗板面
,根据客户的需求加入
鸡蛋、丸子、豆皮等组合方式,便形成了菜谱上的鸡蛋板面,丸子板面,豆皮板面等等... - 以上
一碗板面
就是原有功能(一个对象
),而根据需求加入
,也就是动态添加额外的职责;