设计模式——装饰模式

一、概念:装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。

二:UML示意图

 

 

 

三、优缺点:

优点:

  • 实现了装饰功能和对象核心功能的分离,降低了类的复杂度,遵守了单一职责原则
  • 扩展新装饰(功能)只需要增加装饰类,遵守了开闭原则
  • 通过使用不同的具体装饰类以及这些装饰类的排列组合,设计师可以创造出很多不同行为的组合。

缺点:

  • 装饰模式会导致设计中出现许多小类,如果过度使用,会使程序变得很复杂。
  • 这种比继承更加灵活机动的特性,也同时意味着更加多的复杂性。
  • 装饰模式是针对抽象组件(Component)类型编程。但是,如果你要针对具体组件编程时,就应该重新思考你的应用架构,以及装饰者是否合适。当然也可以改变Component接口,增加新的公开的行为,实现“半透明”的装饰者模式。在实际项目中要做出最佳选择。

 

posted @ 2020-03-11 14:26  夜里寻星  阅读(115)  评论(0)    收藏  举报