静态代理

总结:

1.真实对象和代理对象都要实现同一个接口
2.代理对象要代理真实角色
好处:

  • 代理对象可以完成很多真实对象无法完成的事情
  • 真实对象专注于做自己的业务

具体例子,参考多线程实现类Thread类 都是为了实现runnable接口中的run()方法设计的

public class StacticProxy {
    public static void main(String[] args) {
        WeddingCompany weddingCompany = new WeddingCompany(new You());
        weddingCompany.HappyMarry();
    }
}

interface Marry {
    void HappyMarry();
}

class You implements Marry {

    @Override
    public void HappyMarry() {
        System.out.println("今天就要结婚了!");
    }
}

//代理角色
class WeddingCompany implements Marry {

    private Marry target;

    public WeddingCompany(Marry target) {
        this.target = target;
    }

    @Override
    public void HappyMarry() {
        before();
        this.target.HappyMarry();
        after();
    }

    private void after() {
        System.out.println("结婚后");
    }

    private void before() {
        System.out.println("结婚前");
    }
}
posted @ 2021-03-09 21:19  UltraBlast  阅读(72)  评论(0)    收藏  举报