Java的静态代理模式

Java的静态代理模式

  • 真实对象和代理对象都要实现同一个接口
  • 代理对象要代理真实角色
  • 好处
    • 代理对象可以做很多真实对象做不了的事
    • 真实对象专注做自己做的事情
package com.cnblogs.thread;
//用结婚案例来说明
public class StaticProxy {
    public static void main(String[] args) {
        WeddingCompany weddingCompany = new WeddingCompany(new You());
        weddingCompany.HappyMarry();
        
        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();
        this.target.HappyMarry();//真实的对象
        after();
    }

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

    private void after() {
        System.out.println("结婚后,收尾款");
    }
}
posted @ 2021-07-22 16:18  贪玩的阿柒  阅读(42)  评论(0编辑  收藏  举报