多线程(3)静态代理模式

用结婚案例来说明静态代理模式

package com.Thread.lesson01;

/**
 * 静态代理模式
 * 真实对象和代理对象都要实现同一个接口
 * 代理对象要代理真实角色
 * @author 长空扯淡
 */
public class StaticProxy {

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

        You you = new You();
        new Thread( ()-> System.out.println("我爱你")).start();

        new WeddingCompany(new You()).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();
        System.out.println("结婚啦");
        after();
    }

    public void before(){
        System.out.println("结婚之前先给钱");
    }

    public void after(){
        System.out.println("结婚之后要烧钱");
    }
}

 

posted @ 2022-05-03 10:25  长空扯淡  阅读(28)  评论(0)    收藏  举报