装饰者模式是在不改变现有类结构的前提下,增强目标类的方法的一种设计模式;
看代码:
目标类的父类:
public interface Father {
void targetmethod();
}
目标类:
public class Target implements Father{
@Override
public void targetmethod() {
System.out.println("目标函数的方法");
}
}
装饰者:
public class Docker implements Father{
private Target target;
public Docker(Target target){
this.target = target;
}
@Override
public void targetmethod() {
System.out.println("目标方法执行之前");
target.targetmethod();
System.out.println("目标方法执行之后");
}
}
Client:
public class Client {
public static void main(String[] args) {
Docker docker = new Docker(new Target());
docker.targetmethod();
}
}
执行结果:
目标方法执行之前
目标函数的方法
目标方法执行之后
由此,在不改变源码的前提下对目标类进行类增强作用;