标签:
策略模式定义了一系列算法,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
例子:
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://www.cnblogs.com/xxr2015/p/4627805.html