策略模式是一种选择,给一个灵活的接口,然后去选择,只要是这个接口下的子类,我们都能去选,在不同的场合,选择会不同,这就是策略。客户端或者是决策者,是依赖于这个接口的,而不依赖具体的实现。
如排序算法是有很多种的,所有排序算法都可以实现排序这个接口。
public interface SortInterface {
public void sort(int[] data);
}
然后我们创建实现这个接口的具体类
public class BubbleSort implements SortInterface{
public void sort(int[] data) {
//假装排序
//TO-DO 冒泡排序的逻辑
}
}
public class QuickSort implements SortInterface{
public void sort(int[] data) {
//假装排序
//TO-DO 快速排序的逻辑
}
}
可供选择的项已经做好了。
那么我们要做关于策略的选择了
public class Client {
SortInterface sortTool = null;
public Client(SortInterface sortTool){
this.sortTool = sortTool;
}
public void doSort(int[] data){
if(this.sortTool!=null){
this.sortTool.sort(data);
}
}
}
策略模式让我凡是思考问题都一定要考虑接口结构。
未完待续。。。
个人原创内容,未经许可禁止转载
本文链接:http://note.xblame.top/2018/10/19/设计模式-策略模式/
近期评论