日期:2014-05-19  浏览次数:20614 次

求解释下策略模式~谢谢了~
策略模式是对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使它们可以互相替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。

我就一直是觉得啊 new context(这里参数动态的) 这是使用策略模式

如果不用这个策略模式 
算法接口 = new 算法子类 这个不也可以动态new的么? 而且我没发现算法会影响到什么呀,如果算法响应到了客户端,那用context的时候 不也会影响到吗?
为什么我除了发现他封装了一层算法 没发现别的什么作用呢?这仅仅是为了“面向接口”而规定的?
而且我也没发现 直接new 算法子类这个写在客户端有什么问题啊
一般的客户看到的不就是友好的中文或者别的非代码图形界面么0 0 

谢谢各位来解答 

 

------解决方案--------------------
在情况非常简单的情况,你很难看出各种设计模式的好处。这就好比一个接口对应一个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
------解决方案--------------------
http://blog.csdn.net/xn4545945/article/details/7854227

http://blog.csdn.net/xn4545945/article/details/7854227

自己给自己打广告了,希望对您有帮助。
策略模式降低了客服与算法之间的耦合,同时可以动态设定行为。