策略模式介绍
针对一组算法,并且各自的实现在各自的公共类中,可以相互替换。
策略模式优点
- 便于扩展,每个算法只需增加自己的策略类即可。
- 策略类之间可以互相替换。
策略模式缺点
- 如果策略过多的话,会产生很多策略类。
- 客户端调用的时候,必须知道所有的策略类。
场景
例如:一个数组的排序实现,可以通过冒泡排序,也可以通过快速排序。
-
首先抽象排序接口,定义公共方法。
-
分别实现接口,实现冒牌排序和快速排序。
-
定义环境角色,调用策略。
-
客户端调用及结果。
针对一组算法,并且各自的实现在各自的公共类中,可以相互替换。
例如:一个数组的排序实现,可以通过冒泡排序,也可以通过快速排序。
首先抽象排序接口,定义公共方法。
分别实现接口,实现冒牌排序和快速排序。
定义环境角色,调用策略。
客户端调用及结果。