【设计模式】装饰模式

装饰模式

装饰模式,动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活.

装饰模式就是为了给已有功能动态添加更多功能。

它解决的主要问题就是:

  • 之前的代码如果要给ConcretePerson加功能,就要在这个类里添加对应的成员变量或者新的字段,新的逻辑。这样不仅违反了开闭原则还让这个ConcretePerson类变得很复杂。

  • 而装饰模式,是把每个装饰的功能单独成类,并让这个类包装它所要装饰的对象。当需要执行这些特殊行为时,就可以有选择的按顺序的使用装饰。

更大的好处就是有效地把类的核心职责和装饰功能区分开了,而且可以去除相关类中重复的装饰逻辑。

posted @ 2020-01-09 19:28  LampsAsarum  阅读(88)  评论(0编辑  收藏  举报