装饰者模式笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰者模式笔记相关的知识,希望对你有一定的参考价值。

概念理解:装饰者模式(Decorator),就是装饰一下某种东西,使得他比原来增加些东西,比如化妆,原来单眼皮,给贴上个假双(这里也许不太贴切哈,莫怪),就具备了双眼皮效果。回到java上来说,就是给某个类的功能进行加强,扩展了其功能而已。

模式由来:我们要对一个类进行增强,因为不推荐直接修改源代码,才产生了装饰者模式。

原理:有一个类实现了A接口,我们要加强这个类,所以写了一个新类也实现这个接口并把原类的接口的引用添加到新类,在新类中重写要加强的方法并在方法中调用要这个加强的方法,从而实现增强。

例子:一只狗只会跑,我想让它跑完了就飞起来!(在“跑”这个方法上加入“飞”的附加业务)

interface Animal{

  public void run();

}

 

class Dog implements Animal{

  @override

  public void run(){

    System.out.println("狗在跑");

  }
}

//被装饰者

class FlyDog implements Animal{

  //原类的接口的引用

  Animal animal = null;

  //构造方法

  public FlyDog(Animal animal){

    this.animal = animal;

  }

  //重写要加强的方法

  @override

  public void run(){

    animal.run();//原来的功能

    System.out.println("它越来越快,最后它飞了起来");

  }

}

此时,如果您new的是Dog,那么它只会跑。如果您new的是FlyDog,那么,它跑完后要飞起来!我们成功的在“跑”上加入了“飞”。

以上是关于装饰者模式笔记的主要内容,如果未能解决你的问题,请参考以下文章

小白自我提高学习设计模式笔记—装饰者模式

装饰者模式笔记

设计模式学习笔记:装饰者模式

小白自我提高学习设计模式笔记—装饰者模式

小白自我提高学习设计模式笔记—装饰者模式在Android开发的小试

设计模式学习笔记之装饰者模式