learning之策略模式

来源:互联网 发布:网络招商怎么精准找到 编辑:程序博客网 时间:2024/06/16 00:08
策略模式:定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。 


说明:

1、在相同的行为抽象下有不同的具体实现策略

2、将策略抽象出来,对客户端提供统一接口,不同具体实现类实现具体策略。这样客户端可以通过切换不同实现类来动态切换策略。


图片来自网络:



//策略的抽象public interface Sort {    public void sort();}

//冒泡排序public class Bubble implements Sort{    @Override    public void sort() {        System.out.print("Bubble sort");    }}


//快排public class QuickSort implements Sort{    @Override    public void sort() {        System.out.print("Quick Sort");    }}

//辅助类,用来决策public class Algorithm {    private Sort sort;    public Algorithm(Sort sort){        this.sort=sort;    }    public void sort(){        sort.sort();    }}

public class Test {    public static void main(String args[]) {        Sort quickSort=new QuickSort();        Sort bubble=new Bubble();        //快排        Algorithm algorithm=new Algorithm(quickSort);        algorithm.sort();        //冒泡排序        Algorithm algorithm1=new Algorithm(bubble);        algorithm.sort();    }}