装饰者模式,是继承的一种替代方案,可以理解为 在不改变接口的前提下,动态扩展对象的功能 。
1.装饰者和被装饰者实现同一个接口或者继承同一个类
public interface Car{
void run();
void stop();
}
public class Audi implement Car{
public void run(){System.out.println("")}
public void stop(){System.out.println("")}
}
2.装饰者中要有被装饰者的引用
public class CarWarp implement Car{
private Car car;
public CarWarp(Car car){
this.car = car ;
}
public void run(){
// 方法增强
System.out.println("")
}
public void stop(){System.out.println("")}
}
3.对需要增加的方法进行加强
4.对不需要加强的方法调用原来方法