装饰者模式

装饰者模式                                                             

  1.作用:增强一个类得功能还可以让装饰者类之间互相装饰。                  

  2.使用步骤:                                                            

    1.在装饰者类中需要维护一个被装饰者类得引用(要扩展的类)               

    2.让一个装饰类有一个共同的父类或父接口                                 

    class Son extends Person{

        Person person;   //需要装饰的类

        Public Son (Person person){   //创建的时候传递该类

    this.person = person;

}

public void work(){

    person.work();    // 装饰父类的方法

    System.out.println(“画画”);

}

}

Person p = new Person();

Son son = new Son(Person);

son.work();

  3.装饰者模式和继承的优缺点                                              

    1.装饰者实现的增强类:                                                 

     优点:内部可以通过多态技术对多个需要增强的类进行增强                  

     缺点:需要内部通过多态技术维护需要增强的类的实例,复杂。              

    2.继承实现增强类:                                                      

     优点:代码结构清晰,实现简单                                          

     缺点:对于每个需要增强的类都要创建具体的子类,过于庞大                

原文地址:https://www.cnblogs.com/z-jun/p/6171095.html