《Javascript设计模式》读书笔记之“装饰者模式”

装饰者模式用于透明的把对象包装在具备一样接口的对象中。对象

在不改变接口的状况下,装饰者模式比建立子类更合适。相较于建立子类,装饰者模式能够节省不少代码。接口

装饰者模式和组合模式有不少共同点,它们都用来包装对象,它们都与所包装的对象实现一样的接口而且会把任何方法调用传递给这些对象。那么两者间有什么区别呢,组合模式的目的是组织子对象并不修改方法调用,而装饰者模式的目的是修改方法调用。基础

装饰者修改对象的方式有四种: 方法

  一、在方法调用以后添加行为,原有行为基础上添加或修改返回结果参数

  二、在方法调用以前添加行为,在原有行为以前进行处理或者修改原有行为的参数

  三、替换方法

  四、增长新方法

适用场景:

  须要为类添加新特性或者功能,当派生子类不太现实时就应该使用装饰者模式。派生子类不现实指新特性比较多且可任意组合时,这种状况下仍然派生子类的话就会产生大量的子类、大量的代码,给维护带来麻烦。

装饰者模式的主要缺点是它会破坏类型,当你的代码基于类型检查时就会出问题。再一个缺点就是略微复杂。

相关文章
相关标签/搜索