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>{@Overrideint 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++){}}}
