三个角色
- 抽象策略角色,是一个抽象类或者接口。
- 具体策略角色, 继承或实现抽象策略。
- 环境角色,环境角色需要用到抽象策略,策略具体的执行由具体策略来实现。
例子
抽象角色为 排序接口:
public interface SortAlgorithm {
void sort(int[] arr);
}
具体实现类1,快速排序
public class QuickSort implements SortAlgorithm {
public void sort(int[] arr) {
//xxxxxxxxx
}
}
具体实现类2,冒泡
public class BubbleSort implements SortAlgorithm {
public void sort(int[] arr) {
//xxxxxxxxx
}
}
环境角色,其实就是拥有策略接口的类,这个类会调用接口的策略方法,具体的实现由传入的策略是实现。
public class Context {
private SortAlgorithm sortor;
public Context(SortAlgorithm sortor) {
this.sortor = sortor;
}
public void sort(int[] arr) {
this.sortor.sort(arr);
}
}
是不是很简单!