静态代理的理解(Java中结婚和婚庆公司之间的事儿)

静态代理的理解(Java中的结婚和婚庆公司之间的事儿)

package com.wen.thread;

/**
 * @Author WangEn
 * @CreateTime: 2021-04-10-15-52
 * @Emile: wen_5988@163.com
 */
// 用结婚来讲解静态代理
    // 结婚对象,婚庆公司
public class TestStaticProxy {

    /**
     * 总结静态代理
     * 代理对象和真实对象都实现同一个接口
     * 代理对象要代替真实对象做事
     * 好处:代理对象可以做很多真实对象做不了的事
     * // 真实对象专注做自己的事
     * @param args
     */
    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-04-10 16:18  W·EN  阅读(67)  评论(0)    收藏  举报