码迷,mamicode.com
首页 > 其他好文 > 详细

装饰者模式

时间:2017-06-02 01:11:24      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:添加   构造方法   装饰者   通过   代码   实现   子类   种类   接口   

 接口 A{

     统一的方法();

 

一个普通的继承者

B 实现 A{

   统一的方法(){

 }

 

代码写完了,五年之后B不够用了,我们好几个地方的代码用到B,直接在B里添加方法,对既有的代码来说是冗余的,

我们又想继续用B里的方法,我们可以直接写个类继承B,在里面再添加方法,

装饰模式也可以解决这种事情,但是用的不是继承,而是:

 

C 实现 A{

   private A a;

   构造方法 C(A a1){

      a=a1;

  }

   

    统一的方法(){

      a.统一的方法();

 }

 

     添加的其他方法(){

    }

 

}

 

用的时候直接new 一个B,然后传入C的构造方法,就可以通过C来用B的方法,C还可以有自己的方法。

 

 

定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.相比用生成子类方式达到功能的扩充显得更为灵活

设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。

装饰者模式

标签:添加   构造方法   装饰者   通过   代码   实现   子类   种类   接口   

原文地址:http://www.cnblogs.com/flying607/p/6931287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!