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;
}
}