(原)装饰模式

来源:互联网 发布:直销软件xajczxrj 编辑:程序博客网 时间:2024/05/25 19:58

 

装饰模式的作用是动态的为对象添加一些额外的行为!其实我们可以理解为是类似继承功能的另一种实现方式,不过继承是静态的编译期间就确定,而装饰是动态的运行期间才确定。

那么如何实现装饰模式呢?首先我们需要清楚知道装饰模式有哪些核心元素。

  装饰模式的元素有

原始接口:定义行为

默认实现类:继承原始接口,可以理解为最基本的接口实现

装饰类(可以是抽象的也可以是具体的):继承原始接口,同时聚合了一个默认实现类的对象,这样就即可使用默认实现类的行为也可以添加额外的行为

具体装饰类:继承装饰类,做再一步扩展,如果装饰类是抽象,则具体实现装饰类。

注意:在实际开发中很多业务场景中装饰类已经是具体的,而省略了具体装饰类

  说到这里不知道大家理解为什么叫装饰模式了没,其实“装饰”是对于默认实现类而言,因为具体实现类的对象聚合默认实现类的对象,对默认实现类的行为进行了扩展。如何为默认实现类穿了衣服一样,装饰模式由此而来。

  应用场景:

  1. 适合对默认实现类中的多个接口进行排列组合(默认实现类中聚合了其他接口,为实现不同的功能需要这些接口的不同组合)
  2. 适合对默认实现类惊醒选择性扩展
  3. 适合对默认实现类未知或者不易扩展的情况
0 0
原创粉丝点击