java静态代理

java中的静态代理

静态代理小故事

有一天,小杰想结婚了,但是小杰懒得自己去布置婚礼现场,这时候,有个人告诉他不用自己置办婚礼也可以结婚,酒店可以代办,小杰异常高兴,觉得这很符合自己当前的需求,所以高高兴兴去酒店找老板定制了自己的婚礼,老板也很快帮小杰办好了婚礼,一切都显得那么和谐!

当你需要一个房子,但是你不好直接找到房主,所以你找到了中介,中介帮你找到了房子,中介就是你的代理

话不多说,上代码

package com.jie;

/**
 * @author wei zhijie
 * @version 1.0
 * @date 2021/1/6
 */
/*
静态代理模式
真实对象和代理对象都要实现同一个接口
代理对象必须要代理真实角色
好处
//代理对象可以做很多真实对象做不了的事情
//真实对象专注于做自己的事
 */
public class StaticProxy {


    public static void main(String[] args) {

        WeddingCompany weddingCompany = new WeddingCompany(new You());

        weddingCompany.HappyMaray();
    }
}
interface Marry{

    void HappyMaray();
}
//真实角色,你去结婚
class You implements Marry{


    @Override
    public void HappyMaray() {

        System.out.println("杰要结婚了,");

    }
}

//代理
class WeddingCompany implements Marry{
    //代理谁,真实目标角色
    private Marry target;

    public  WeddingCompany(Marry target){

        this.target=target;
    }

    @Override
    public void HappyMaray() {

        after();
        //这就是真实角色
        this.target.HappyMaray();

         before();

    }

    private void after() {

        System.out.println("结婚以前,布置现场");
    }


    private void before() {

        System.out.println("结婚之后,收尾款");
    }

再来看一下运行结果

posted @ 2021-01-06 15:54  xiaozhounandu  阅读(88)  评论(0编辑  收藏  举报