策略模式(strategy)

策略模式定义了一系列算法,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。

例子:

public interface ICalculator {
     public int calculate(int a, int b);  
}
public class Plus implements ICalculator{

    @Override
    public int calculate(int a, int b) {
        return a + b;
    }

}
public class Minus implements ICalculator{

    @Override
    public int calculate(int a, int b) {
        return a - b;
    }

}

测试:

public class Test {

    public static void main(String[] args) {
        ICalculator calculator = new Plus();
        System.out.println(calculator.calculate(10, 8));
        
        ICalculator calculator1 = new Minus();
        System.out.println(calculator1.calculate(10, 8));
    }

}

结果:

18
2

策略模式的决定权在用户,系统本身提供不同算法的实现,新增或者删除算法,对各种算法做封装。因此,策略模式多用在算法决策系统中,外部用户只需要决定用哪个算法即可。上面例子简单,也可和其他组合使用。总之策略模式感觉就是面对接口编程的思想。

 

改编于,如需看原文请点击:http://blog.csdn.net/zhangerqing/article/details/8194653

posted @ 2015-07-07 18:12  蜉蝣朝生而暮死  阅读(136)  评论(0编辑  收藏  举报