美文网首页
(十一)代理模式

(十一)代理模式

作者: feiry | 来源:发表于2019-08-07 20:25 被阅读0次
    水果代理

    客户下单不需要知道水果从哪里来,只需要知道结果,不关心中间流程,那么当我们需要购买本地没有的水果时,就需要找代理

    代理模式

    代理模式

    与装饰器模式有点相似,代理类需要实现订单接口,然后内部持有一个订单服务用来存储海外订单

    //代理
    public class ProxyOrder implements OrderService {
    
        //真实的订单服务
        private OrderService orderService = new OutOrderServiceImpl();
    
        @Override
        public int saveOrder() {
            System.out.println("开始海外下订单");
            return orderService.saveOrder();
        }
    }
    /**
     * 海外订单
     */
    public class OutOrderServiceImpl implements OrderService {
        @Override
        public int saveOrder() {
            System.out.println("下单成功,订单号: 66666666");
            return 66666666;
        }
    }
    
    //调用代理
    public static void saveOrder(){
            //本地代理类
            OrderService orderService = new ProxyOrder();
    
            orderService.saveOrder();
    
            //其它业务代码。。。。
    
        }
    

    适用场景

    需要封装原有功能并且可以增强原有功能的场景

    总结

    代理模式顾名思义就是另一个功能的代理,与装饰器模式思想不同的是,装饰器模式是为了不停地增强自己的功能,而代理模式内部是固定给一个第三方做代理,把功能甩给了第三方。

    代理与装饰器对比

    相关文章

      网友评论

          本文标题:(十一)代理模式

          本文链接:https://www.haomeiwen.com/subject/eogadctx.html