静态代理模式

2020-05-10  本文已影响0人  秋秋_6403

代理和真实角色本身都要实现同一个接口,代理对象要代理真实角色,好处是代理可以做很多真实对象做不了的其他事情,真实角色只要专注于做自己的事情。但是代理中还是要调用真实角色的方法,真正做事情的还是真实角色。

public class TestStaticProxy {

    public static void main(String[] args) {
        You you = new You();
        WeddingCompany company = new WeddingCompany(you);
        company.HappyMarry();
    }

}

interface Marry {
    void HappyMarry();
}

//真实角色去结婚
class You implements Marry {
    @Override
    public void HappyMarry() {
        System.out.println("新婚快乐");
    }
}

//代理角色,帮助真实对象结婚
class WeddingCompany implements Marry {
    //代理的真实角色
    private Marry marry;


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

    @Override
    public void HappyMarry() {
        before();
        marry.HappyMarry();//真实对象去结婚
        after();


    }

    private void after() {
        System.out.println("收尾款");
    }

    private void before() {
        System.out.println("布置现场");
    }


}

学习视频:https://www.bilibili.com/video/BV1V4411p7EF?p=9

上一篇 下一篇

猜你喜欢

热点阅读