• [设计模式]静态代理


    一、概念解释

      静态代理,是一种设计模式(写代码的套路)。所谓静态,是指代码写死的,不可变的。所谓代理就是替别人干。比如,酒厂和酒水代理商,都是为了卖酒,酒厂批发给代理商(卖酒),代理商卖给酒鬼(卖酒)。

      那么问题来了,既然酒厂也能卖酒,为什么还要搞代理呢?搞这些套路有啥用?

    二、代理的优点

      酒厂从原料采购,到生产加工,再到产品销售,环节众多,如果全都让它自己搞,显然需要耗费很大的精力去管理,不如把他们拆分开,让专业的人做专业的事,自己定个批发价给代理商,至于他们怎么卖,那就是八仙过海各显神通了

      接下来将酒水代理的例子转换成代码,参考如下:

    public class StaticProxy {
        public static void main(String[] args) {
    
            Proxy proxy = new Proxy(new WineFactory());
            proxy.sell();
        }
    }
    
    interface ISell {
        void sell();
    }
    
    class WineFactory implements ISell {
    
        @Override
        public void sell() {
            System.out.println("卖酒。。。");
        }
    }
    
    class Proxy implements ISell {
    
        private WineFactory wineFactory;
    
        Proxy(WineFactory wineFactory) {
            this.wineFactory = wineFactory;
        }
    
        @Override
        public void sell() {
            //卖前加点业务
            System.out.println("代理商加价");
            wineFactory.sell();
            //卖后加点业务
            System.out.println("送个包装袋给包起来");
        }
    }

    输出结果:

    
    

    代理商加价
    卖酒。。。
    送个包装袋给包起来

  • 相关阅读:
    TFTP服务器的使用
    SecureCRT Ver 8.1.4 整合汉化绿色版一体包
    SecureCRT Ver 8.1.4 整合汉化绿色版一体包
    深度好贴,mark一下!
    DataSnap——利用TParams进行多表事务更新
    临时表经典使用范例
    PHP对文件的操作方法
    中国银行支付接口(ecshop版)
    常用支付接口实例php版
    PHPCMS网站二次开发配置要点
  • 原文地址:https://www.cnblogs.com/zhengxl5566/p/10428720.html
Copyright © 2020-2023  润新知