策略模式
来源:互联网 发布:应聘淘宝客服被骗 编辑:程序博客网 时间:2024/06/07 19:58
策略模式(行为模式)
他对一系列算法进行封装,为所有算法定义一个抽象的算法接口,并通过继承抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定。Strategy模式主要用来平滑地处理算法的切换
比如商场进行打折活动,有8折的,有满100送90的,这要那个就可以使用策略模式来管理这些算法
Strategy.java
public interface Strategy { void cost(double money);}
StrategyA.java
public class StrategyA implements Strategy { @Override public void cost(double money) { System.err.println("大八折,原价:" + money + ", 打折后:" + money * 0.8); }}
StrategyB.java
public class StrategyB implements Strategy { @Override public void cost(double money) { System.err.print("满一百减九十,原价:" + money ); if (money >= 100) money-=90; System.out.println(", 打折后:" + money); }}
Context.java
public class Context { private Strategy strategy; public Context(Strategy strategy) { super(); this.strategy = strategy; } public void cost(double money) { strategy.cost(money); }}
Test测试
public class Test { public static void main(String[] args) { Context contextA = new Context(new StrategyA()); contextA.cost(100); Context contextB = new Context(new StrategyB()); contextB.cost(100); }}
结果
大八折,原价:100.0, 打折后:80.0满一百减九十,原价:100.0, 打折后:10.0
阅读全文
0 0
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 抽象工厂模式
- 网间互联-国家级互联网骨干直联点
- MySQL 5.7.18 安装教程
- Linux-用shell脚本写一个进度条
- NGUI学习要点总结
- 策略模式
- HDU 5795 A Simple Nim (SG函数+打表找规律)
- vuex学习笔记
- 朱金付C++第五章
- (三)Redux:创建和使用Reducer
- 嵌入人生
- 刷题记录-luoguP1525 关押罪犯
- 小白学爬虫-----bs4的学习-1
- 【HNOI2016模拟4.4】Alphadog