zoukankan      html  css  js  c++  java
  • [设计模式]静态代理

    一、概念解释

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

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

    二、代理的优点

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

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

    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("送个包装袋给包起来");
        }
    }

    输出结果:

    
    

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

  • 相关阅读:
    关于vue 自定义组件的写法与用法
    常用的几种监控服务器性能的Linux命令
    Web自动化测试入门
    接口测试入门
    Selenium+IDEA(java+maven+testNG)+Jenkins环境搭建
    Jmeter+ant+Jenkins环境搭建
    iframe在移动端的缩放
    CSS3的颜色渐变效果
    Hexo建博小结
    Ajax基本概念和原理
  • 原文地址:https://www.cnblogs.com/zhengxl5566/p/10428720.html
Copyright © 2011-2022 走看看