知识卡片
装饰模式的三类适用场景
内容
应用[[装饰模式的定义与四个角色]]的三类场景:需要扩展类的功能或增加附加职责;需要动态 增加且之后可撤销的功能;需要为一批兄弟类统一改装或加装通用功能。发散:第三类场景值得 留意——当增强需求要覆盖整批平行实现类而非单个类时,装饰模式比继承更划算,因为继承要给 每个兄弟类各自派生子类,装饰类只需写一份就能包裹任意一个。
参考来源
- 位置:《设计模式之禅(第2版)》第17章《装饰模式》(源文件:_epub-src/text/part0078.html)
- 结论依据:原文列出三类使用场景:需要扩展一个类的功能或增加附加功能、需要动态增加且可动态撤销的功能、需要为一批兄弟类进行改装或加装功能。
- 原始内容:需要扩展一个类的功能,或给一个类增加附加功能。需要动态地给一个对象增加功能,这些功能可以再动态地撤销。需要为一批的兄弟类进行改装或加装功能,当然是首选装饰模式。