一.什么是策略模式
只需替换算法的实现部分,就可以让我们轻松使用不同的算法去解决同一个问题.
二.例子
1.类
Hand : 表示猜拳游戏中的"手势"的类.
Strategy : 表示猜拳游戏中的策略的抽象类.
WinningStrategy : 表示Strategy的实现方法类
ProbStrategy : 表示Strategy的实现方法类
Player : 表示进行猜拳游戏的选手的类
Main : 测试程序进行的类
2.思路
Player通过定义其Strategy是WinningStrategy类 或者是 ProbStrategy类 来决定他的策略是什么.
3.作用
a.在程序中可以切换不同的角色.例如在内存容量少的运行环境中科院使用 速度慢但省内存的策略,在内存容量多的运行环境中则可以使用 速度快但耗内存的策略.
b.还可以用一个算法去盐酸另一个算法,例如用高速但计算上可能有bug的算法 去验算 低速但计算准确的算法.