一 . 概述
策略设计模式就是将功能的实现抽离出来,形成统一的接口.
提供一个统一的接口参数方法.
二 . 代码实现
这里用一个交税的例子说明一下.
[1] 策略接口
public interface CalculateTax { //一个统一的接口,方法的入参分别为工资和奖金 double calculate(double salary , double bouns); }
[2] 策略的实现
//一个简单的计算方式 public class SimpleStrategy implements CalculateTax{ private static final double salary_ratio = 0.1d ; private static final double bouns_ratio = 0.2d ; //现在的计算方式 public double calculate(double salary, double bouns) { return salary * salary_ratio + bouns * bouns_ratio; } }
[3]调用处
//税务计算器 public class TaxCalculator { //计算税务 //方法的参数需要一个策略的传入 public static double countTax(double salary , double bouns ,CalculateTax strategy) { return strategy.calculate(salary, bouns); } }
[4]测试
public class TestClass { public static void main(String[] args) { System.out.println(TaxCalculator.countTax(1000, 1000, new SimpleStrategy())); } }
三 . 说明
(1)设计模式的核心有两处
[1] 策略接口
[2]调用处使用接口(抽象类型)
(2)好处: 当我们的策略发生变化的时候,我们可以使用一致性的方式进行编程.
(3)当我们使用spring这样的框架的时候,我们就可以使用配置的方式进行处理.
也就是说我们需要修改的时候,只需要创建一个新的类,然后修改配置就能完成.