大话设计模式二:策略模式(商场促销)
来源:互联网 发布:百雀羚淘宝哪家是真品 编辑:程序博客网 时间:2024/04/29 07:34
策略模式:它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用的算法客户。
应用案例:商场促销的多样性(折扣,满减,积分)
package Strategy;abstract class CashSuper {public abstract double acceptCash(double money);}class CashNormal extends CashSuper {@Overridepublic double acceptCash(double money) {return money;}}class CashRebate extends CashSuper {private double moneyRebate = 1d;public CashRebate(String moneyRebate) {this.moneyRebate = Double.parseDouble(moneyRebate);}@Overridepublic double acceptCash(double money) {return money * moneyRebate;}}class CashReturn extends CashSuper {private double moneyCondition = 0.0d;private double moneyReturn = 0.0d;public CashReturn(String moneyCondition, String moneyReturn) {this.moneyCondition = Double.parseDouble(moneyCondition);this.moneyReturn = Double.parseDouble(moneyReturn);}@Overridepublic double acceptCash(double money) {double result = money;if (money >= moneyCondition) {result = money - Math.floor(money / this.moneyCondition)* this.moneyReturn;}return result;}}public class CashContext {private CashSuper cs;public CashContext(String type) {switch(type) {case "正常收费":cs = new CashNormal();break;case "满300返100":cs = new CashReturn("300","100");break;case "打8折":cs =new CashRebate("0.8");break;}}public double GetResult(double money) {return cs.acceptCash(money);}public static void main(String[] args) {// TODO Auto-generated method stubCashContext cc = null;double total = 0.0d,totalprice = 1000d;cc = new CashContext("正常收费");total = cc.GetResult(totalprice);System.out.println(total);total = 0.0d;totalprice = 1000d;cc = new CashContext("满300返100");total = cc.GetResult(totalprice);System.out.println(total);total = 0.0d;totalprice = 1000d;cc = new CashContext("打8折");total = cc.GetResult(totalprice);System.out.println(total);}}
策略模式就是用来封装算法的,在实践中,我们发现可以用来封装几乎任何类型的规则,只要在分析中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。
- 大话设计模式二:策略模式(商场促销)
- 策略模式-商场促销-大话设计模式
- 策略模式-商场促销-大话设计模式 .
- 《大话设计模式》--商场促销--策略模式<Strategy>(2)
- 大话设计模式02----商场促销-策略模式
- 《大话设计模式》——读后感 (2)商场促销——策略模式
- 《大话设计模式》——读后感 (2)商场促销?——策略模式
- 设计模式之二 商场促销-策略模式
- 【设计模式】商场促销 -- 策略模式
- 策略模式-商场促销
- 商场促销 --- 策略模式
- 商场促销-策略模式
- 商场促销----策略模式
- 大话设计模式 商场促销 工厂模式和策略模式 c++
- 大话模式学习笔记-商场促销-策略模式
- 《大话设计模式》之--第2章 商场促销----策略模式
- 《大话设计模式》之--第2章 商场促销----策略模式
- 大话设计模式 第二章 商场促销——策略模式
- 线性筛选法求素数表
- Hibernate框架(企业关注的技能)
- 易错的for循环笔试题(续)
- svn linux下命令行参考
- 从 Java 应用程序动态生成 PDF 文件
- 大话设计模式二:策略模式(商场促销)
- cocos2dx在Android下如何接入91SDK
- 运行QQ出现side-by-side configuration incorrect
- 20+富有创意的BuddyPress网站
- 奋战杭电ACM(DAY11)1017
- GDB十分钟教程
- tomcat-------虚拟目录
- UVA 825 Walking on the Safe Side(记忆化搜索)
- DVD光驱:由于其配置信息(注册表中的)不完整或已损坏