strategy(tenth day)
来源:互联网 发布:淘宝保证金在哪里退 编辑:程序博客网 时间:2024/06/07 03:18
策略模式: 定义一系列的算法,把他们一个个封装起来,并且使它们可互相替换。
/** * 定义一系列的算法,把他们一个个封装起来,并且使它们可互相替换。 * @describe * 抽象角色定义算法的 骨架 * * @time 2014-7-9 上午10:29:33 */public interface Strategy {public double calcPrice(double goodsPrice);}
public class LargeCustomerStrategy implements Strategy{@Overridepublic double calcPrice(double goodsPrice) {System.out.println("大客户折扣10%"); return goodsPrice*(1-0.1);}}
/** * 算法的具体实现 * @describe * * * @time 2014-7-9 下午04:40:18 */public class NormalCustomerStrategy implements Strategy{@Overridepublic double calcPrice(double goodsPrice) {System.out.println("对于新客户或者普通客户,没有折扣"); return goodsPrice;}}
public class OldCustomerStrategy implements Strategy{@Overridepublic double calcPrice(double goodsPrice) {System.out.println("对于老客户,折扣5%"); return goodsPrice*(1-0.05);}}
/** * 封装了变化部分(算法的实现) 用户只需要访问这个封装的角色就行了 * @describe * * * @time 2014-7-9 下午04:38:32 */public class Price {private Strategy strategy = null;public Price(Strategy strategy){this.strategy = strategy;}public double quote(double goodsPrice){return this.strategy.calcPrice(goodsPrice);}}
public class Client {public static void main(String[] args) {Strategy sty = new LargeCustomerStrategy();Price ctx = new Price(sty);double quote = ctx.quote(1000);System.out.println(quote);}}
0 0
- strategy(tenth day)
- 《黑马程序员》The tenth day
- Tenth Line
- Tenth Line
- Tenth Line
- Strategy
- Strategy
- Strategy
- Strategy
- Strategy
- Strategy
- Strategy
- strategy
- strategy
- Strategy
- Strategy
- Strategy
- Strategy
- SVN服务器更改ip地址客户端怎么设置
- 九野的计算几何模版
- Naive Bayes algorithm for spam classification (Matlab实现)
- unity中gameobject设为true后其身上脚本不会立即执行!!
- Web框架技术
- strategy(tenth day)
- (转)C#调用C++写的DLL
- 不同Oracle版本之间dmp文件的导入
- oracle forms builder 安装配置
- 我的软编第一天
- LeetCode OJ - Generate Parentheses
- 1016. 部分A+B (15)
- java输入输出流及文件操作
- kinect深度图和彩图对准的源代码, 附上数据一组