装饰者模式

来源:互联网 发布:淘宝店铺导航设置 编辑:程序博客网 时间:2024/06/05 22:53

定义装饰者模式

装饰者模式:
动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的代替方案。

回顾上2章模式定义

策略模式:
定义了算法族,分别封装起来,让他们之间可以相互转换,此模式让算法的变化独立于使用算法的用户。
观察者模式:
定义了对象之间的一对多的关系,这样一来,当一个对象改变状态时,它所有的依赖者都会收到通知并自动更新。

开放 - 关闭原则

设计原则:类应该对扩展开放,对修改关闭

这看起来很矛盾,书本中有一个自问自答的解释:
问:对扩展开放,对修改关闭?听起来很矛盾。设计如何兼顾两者?
答:这是一个很好的问题。乍听之下,的确感到很矛盾,毕竟,越难修改的事物,就越难扩展,不是吗?但是,有一些聪明的OO技巧,允许系统在不修改代码的情况下,进行功能扩展。想想观察者模式,通过加入新的观察者,我们可以在任何时候扩展Subject(主题),而且不需要向主题中添加代码。


要点

  • 装饰者和被装饰者对象有相同的类型。

  • 可以用一个或多个装饰者包装一个对象。

  • 既然装饰者和被装饰者有相同的超类型,所以在任何需要原始对象(被包装)的场合,可以用装饰过的对象代替它。

  • 装饰者可以在所委托被装饰者的行为之前/或之后,加上自己的行为,以达到特定的目的。

  • 对象可以在任何时候被装饰,所以可以在运行时动态的,不限量的用喜欢的装饰者来装饰对象。

0 0
原创粉丝点击