码迷,mamicode.com
首页 > 其他好文 > 详细

[设计模式]静态代理

时间:2019-02-25 00:32:49      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:private   static   this   rri   ISE   bsp   采购   his   code   

一、概念解释

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

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

二、代理的优点

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

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

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

 

输出结果:


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

 

[设计模式]静态代理

标签:private   static   this   rri   ISE   bsp   采购   his   code   

原文地址:https://www.cnblogs.com/zhengxl5566/p/10428720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!