Strategy策略模式
用意:针对一组算法,将每组算法封装到具有相同接口的独立类中,从而全它们可以相互替换。每一个算法,就是一个策略
例如排序策略,冒泡A,快速B 都实现ISort
如: 集合中的Comparator接口
步骤:
1.定义一个公共接口
2.实现每个具体策略类,该类实现了公共接口
3.在使用策略对象的类中保存一个对策略对象的引用 (如:java.util.Collections.sort(list,comparator)
4. 在使用策略对象的类中可以设置策略对象 (如:可以设置comparator)
公共接口
Interface ICalculate{ public int calculate(int a,int b); }
策略类
class AddCalculate implements ICalculate { public int calculate(int a,int b){ return a+b; } } class SubCalculate implements ICalculate { public int calculate(int a,int b){ return a-b; } }
使用类(计算器)
class Calculater { private ICalculate calculate ; public Calculater (ICalculate calculate){ this.calculate = calculate ; } public void setCalculate( ICalculate calculate){ this.calculate = calculate ; } public int getResultByStrategy(int a,int b){ int i = this.calculate.calculate(a,b); return i; } }