策略模式是对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使它们可以互相替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。我就一直是觉得啊 new context(这里参数动态的) 这是使用策略模式如果不用这个策略模式 
算法接口 = new 算法子类 这个不也可以动态new的么? 而且我没发现算法会影响到什么呀,如果算法响应到了客户端,那用context的时候 不也会影响到吗?
为什么我除了发现他封装了一层算法 没发现别的什么作用呢?这仅仅是为了“面向接口”而规定的?
而且我也没发现 直接new 算法子类这个写在客户端有什么问题啊
一般的客户看到的不就是友好的中文或者别的非代码图形界面么0 0 谢谢各位来解答  

解决方案 »

  1.   

    在情况非常简单的情况,你很难看出各种设计模式的好处。这就好比一个接口对应一个BIZ的实现类一样感觉多如。当情况变得足够复杂时你才能体会到策略模式好处。你可以试着写下超市都有哪些促销方案:
    1,新店开张,3天7折
    2,2.14情侣购物半价
    3,妇女节,蔬菜特价
    4,劳动节,特价
    5,奥运期间,同时购买啤酒和零食有优惠
    6,夏季快结束时夏装赶紧打折
    7,中秋节,特价
    8,黄金会员卡打N折,白金打M折,足够积分再送L种奖品

    99,贵重物品支持分期付款
    100,周五刷信用卡的刷100送50你能在一个方法内全部实现吗?
    现在超市又来了一个终极算法:
    100,年末,所有物品先涨2倍,再打折8,最后满1000送500
      

  2.   

    http://blog.csdn.net/xn4545945/article/details/7854227http://blog.csdn.net/xn4545945/article/details/7854227自己给自己打广告了,希望对您有帮助。
    策略模式降低了客服与算法之间的耦合,同时可以动态设定行为。