装饰者模式
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.继承实现增强类:
优点:代码结构清晰,实现简单
缺点:对于每个需要增强的类都要创建具体的子类,过于庞大