返回顶端

Java 静态代理

Java 静态代理

此处以婚庆公司帮你完成结婚比喻代理,WeddingCompany和You都实现了Marry接口,在WeddingCompany的构造器中将You作为参数target传入,在实现接口方法的过程中,代为实现You的接口中的方法。

public class StaticProxy {
    public static void main(String[] args) {
        new WeddingCompany(new You()).HarryMarry();
    }
}

interface Marry{
    void HarryMarry();
}

class You implements Marry{     //真实对象
    @Override
    public void HarryMarry() {
        System.out.println("举行婚礼");
    }
}

class WeddingCompany implements Marry{  //代理,帮助你结婚
    private Marry target;   //代理目标

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

    @Override
    public void HarryMarry() {
        before();   //前置工作
        this.target.HarryMarry();   //真实对象的工作
        after();    //后置工作
    }

    private void before() {
        System.out.println("结婚前准备工作");
    }

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

posted @ 2021-04-03 16:09  EEEEEEEric  阅读(43)  评论(0)    收藏  举报