装饰者模式(待记录)

来源:互联网 发布:塞上牛羊空许约 知乎 编辑:程序博客网 时间:2024/06/16 04:26

对扩展开放,对修改关闭。

利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在运行时动态的进行扩展。

java io类库都是用来包装inputstream的,重写它的read方法。

装饰者和被装饰者需要有相同的类型,实现同一个接口,或继承统一抽象类。如果依赖继承,那么类的行为只能在编译时静态决定。换句话说,行为如果不是来自超类,就是子类覆盖后的版本,利用组合,可以运行时把装饰者混合者用。

原创粉丝点击