设计一个商场打折计费的软件,能够实现打折,满300送100等优惠功能。算法
咱们先把4个计算的类写出来。单元测试
在写负责建立对象和调用的CashCoxt类测试
最后调用的代码:优化
咱们客户端的代码只用到了CashContext类,下降了耦合。 而策略模式的精髓在于:完成同一个功能有不一样的算法时,咱们把他抽象到父类。而后每个功能都由对应的子类来实现。 再用一个中间类为咱们建立对象,调用方法。设计
这样的2点好处: 对象
一、减小了各类算法类之间的耦合。blog
二、优化了单元测试。软件
策略模式就是用来封装算法的,当咱们实践中某一个功能有多种实现的算法。咱们就能够考虑使用策略模式。方法