静态代理模式

你:真是角色

婚庆公司:代理你,帮你处理结婚的事

结婚:都实现结婚接口即可

package com.daiyi;

//静态代理模式

/**
 * 总结:
 * 真实对象和代理对象都要实现同一个接口
 * 代理对象要代理真实角色
 *
 * 好处:
 * 代理对象可以做很多真实对象做不了的事情
 * 真实对象专注做自己的事情
 * */

public class StaticProxy {
    public static void main(String[] args) {

        new Thread(()-> System.out.println("我爱你")).start();
        
        //你自己结婚
        You you = new You();
        you.HappyMarry();

        //用代理帮你结婚
        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() {
        after();
        this.target.HappyMarry();
        before();
    }

    //代理方法:结婚之前
    private void after() {
        System.out.println("结婚之前,布置现场");
    }

    //代理方法:结婚之后
    private void before() {
        System.out.println("结婚之后,收尾款");
    }
}

 

posted @ 2023-04-22 20:01  阿鲲  阅读(14)  评论(0)    收藏  举报