在不改变目标类的基础上对这个类进行加强,可以动态的对目标类进行一些操作。
好处:装饰者设计模式实际上就是替代继承关系的,他比继承更加灵活,耦合性更低。
可以选择性的加强或不加强。
例如:Spring的AOP思想,添加事务
简单Demo:
public class Zsz{
public static void main(String[] args) {
Work worker1=new Worker1();
Work worker2=new Worker2(worker1);
System.out.println("增强前:");
worker1.work();
System.out.println("================");
System.out.println("增强后:");
worker2.work();
}
}
interface Work {
void work();
}
class Worker1 implements Work {
public void work() {
System.out.println("写后端代码");
}
}
class Worker2 implements Work{
private Work work;
public Worker2(Work work) {
this.work = work;
}
public void work() {
System.out.println("写前端代码");
work.work();
System.out.println("测试。。运维。。上线。。维护。。");
}
}
运行结果:
。