首页 > 其他 > 详细

静态代理

时间:2020-10-04 20:19:01      阅读:36      评论:0      收藏:0      [点我收藏+]

概述

自己需要做的事,叫别人去帮你做的更好(加料)

比如:你要结婚,找一个公司代理结婚,结婚的人还是你,但是前后增加了好事,布置炫酷的现场,收尾款等

使用方法

这里用结婚流程来说

  • 定义接口,即结婚的业务
  • 定义结婚对象实现接口中的方法
  • 定义代理结婚的公司实现接口中的方法,并传入代理对象,调用代理对象
  • 增加前后的一些布置
  • 创建代理类负责启动

实例

模拟结婚代理

/**
 * @function 静态代理模式
 * @class StaticProxy 启动代理
 *          Marry 结婚接口
 *          You 结婚对象
 *          WeddingCompany 公司代理对象
 */
public class StaticProxy {
    public static void main(String[] args) {
        //Thread 也是一个代理类 接口Runnable
        new Thread( ()-> System.out.println("I love dudu")).start();
//        和线程对比
        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 before() {
        System.out.println("结婚之前,布置现场");
    }
    private void after() {
        System.out.println("结婚之后,收尾款");
    }
}

一句话

用同样的接口 把你要做的事情 加上大餐 的包装起来使用,更加舒服,省去烦恼,坐等安排。

静态代理

原文:https://www.cnblogs.com/gbhh/p/13768073.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!