设计模式入门之策略模式Strategy
来源:互联网 发布:淘宝店铺音乐 编辑:程序博客网 时间:2024/05/19 17:03
//策略模式定义://定义一些列算法,把他们一个个封装起来,并且使他们可互相交换。//本模式使得算法可独立于使用它的客户而变化//实例:对不同的客户给出不同的折扣价格,上代码//策略接口public class Strategy {public double calcPrice(double goodsPrice);}//普通用户价格算法public class NormalCustomerStrategy implements Strategy {public double calcPrice(double goodsPrice) {System.out.println("新用户、普通用户,没有折扣");return goodsPrice;}}//老用户用户价格算法public class OldCustomerStrategy implements Strategy {public double calcPrice(double goodsPrice) {System.out.println("老用户95折");return goodsPrice*(1-0.05);}}//大用户价格算法public class LargeCustomerStrategy implements Strategy {public double calcPrice(double goodsPrice) {System.out.println("大用户9折");return goodsPrice*(1-0.1);}}//上下文(环境),价格管理public class Price {private Strategy strategy = null;public Price(Strategy strategy) {this.strategy = strategy;}public double calcPrice(double goodsPrice) {return this.strategy.calcPrice(goodsPrice);}}//测试public class Client {Strategy strategy = new LargeCustomerStrategy();Price ctx = new Price(strategy);ctx.calcPrice(1000);}//策略模式本质:封装算法//优点:定义一系列算法,便于扩展;可以避免多重条件语句,更好的扩展性//缺点:客户必须了解每种策略的不同;增加了对象数目
0 0
- 设计模式入门之策略模式Strategy
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy模式(策略模式)
- 设计模式之strategy策略模式
- 设计模式(DesignPattern)之策略模式(Strategy)
- 设计模式之策略模式(Strategy)
- [Phonegap+Sencha Touch] 移动开发19 某些安卓手机上弹出消息框 点击后不消失的解决办法
- iOS开发 简单实现视频音频的边下边播
- 9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路
- Dapper ORM 用法—Net下无敌的ORM - Yowe
- 开始linux下的编程之旅,原厂SDK&openWRT编译之MTK方案
- 设计模式入门之策略模式Strategy
- 微型 ORM-FluentData 温故知新系列
- JAVA程序员怎么才能快速查找到学习资料?
- 显示数据库中的存储过程__转
- c语言第一次出现得bug(陷阱)
- 省赛。。。
- Doxygen使用教程
- oracle的回滚和撤销机制
- 诺基亚(Microsoft Devices Group)2014暑期实习生笔试题知识点