一.定义
定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。算法之间互不影响。
二.组成
1.抽象策略对象(接口或者虚类)
2.具体策略对象(实现抽象策略对象)
3.环境对象(持有策略对象引用,供给client使用)
三.意义
策略模式由很多可以替换的组件组成,之间是弱连接关系,有更强的扩展性,易于维护,提高了可重用性;
环境类负责维护和查询行为类,各种算法则在具体策略中提供。由于算法和环境独立开来,算法的修改不会影响环境和客户端。
四.缺点
客户端必须知道所有的策略类,并自行决定使用哪一种策略;
造成很多的策略类;
解决方案:使用工厂模式。
请参考http://www.cnblogs.com/mengdd/archive/2013/01/19/2867443.html