1 策略模式的主要角色
抽象策略(Strategy)接口(抽象类)
定义了一个接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法,一般使用接口或抽象类实现。
具体策略(Concrete Strategy)类
环境(Context)类
2 策略模式的结构图
3 举例: java.util.Comparator
//定义一个比较策略接口(抽象策略)
public interface Comparator<T> {
int compare(T o1, T o2);
}
//不同的策略实现策略接口(具体的策略)
public class ConcreteComparator<T> implements Comparator<T>{
@Override
int compare(T o1, T o2){
return o1-o2;
}
}
//调用策略的类
public class SortUtil{
public static void sort(T[] arr,Comparator<T>){
if(arr==null||arr.length<2){
return;
}
for(int i=0;i<arr.length;i++){
}
}
}