在不改变目标类的基础上对这个类进行加强,可以动态的对目标类进行一些操作。
    好处:装饰者设计模式实际上就是替代继承关系的,他比继承更加灵活,耦合性更低。
    可以选择性的加强或不加强。
    例如:Spring的AOP思想,添加事务
    简单Demo:

    1. public class Zsz{
    2. public static void main(String[] args) {
    3. Work worker1=new Worker1();
    4. Work worker2=new Worker2(worker1);
    5. System.out.println("增强前:");
    6. worker1.work();
    7. System.out.println("================");
    8. System.out.println("增强后:");
    9. worker2.work();
    10. }
    11. }
    12. interface Work {
    13. void work();
    14. }
    15. class Worker1 implements Work {
    16. public void work() {
    17. System.out.println("写后端代码");
    18. }
    19. }
    20. class Worker2 implements Work{
    21. private Work work;
    22. public Worker2(Work work) {
    23. this.work = work;
    24. }
    25. public void work() {
    26. System.out.println("写前端代码");
    27. work.work();
    28. System.out.println("测试。。运维。。上线。。维护。。");
    29. }
    30. }

    运行结果:
    image.png