设计模式

策略模式是一种选择,给一个灵活的接口,然后去选择,只要是这个接口下的子类,我们都能去选,在不同的场合,选择会不同,这就是策略。客户端或者是决策者,是依赖于这个接口的,而不依赖具体的实现。

如排序算法是有很多种的,所有排序算法都可以实现排序这个接口。

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/设计模式-策略模式/