java设计模式-策略模式
2015-01-23 19:51
225 查看
1.目录结构
2.超市促销,商品促销的方式往往有多种方式,有的直接打折,有的满多少返现等,都是不同的策略,根据具体的要求实现不同的营销方式。
3.
各个策略,都是个计算价格的方法cost()。抽象出Strategy接口。
两种策略StrategyA , StrategyB 都要实现接口 Strategy,并实现cost()方法。
Context根据具体的要求,安排调用不同的策略计算价格。
4.具体实现
Strategy.java
2.超市促销,商品促销的方式往往有多种方式,有的直接打折,有的满多少返现等,都是不同的策略,根据具体的要求实现不同的营销方式。
3.
各个策略,都是个计算价格的方法cost()。抽象出Strategy接口。
两种策略StrategyA , StrategyB 都要实现接口 Strategy,并实现cost()方法。
Context根据具体的要求,安排调用不同的策略计算价格。
4.具体实现
Strategy.java
public interface Strategy { public double cost(double num); }StrategyA.java
public class StrategyA implements Strategy{ /** * 打八折 */ @Override public double cost(double num) { // TODO Auto-generated method stub return num * 0.8; } }StrategyB.java
public class StrategyB implements Strategy{ /** * 满200 返 100 */ @Override public double cost(double num) { // TODO Auto-generated method stub if (num >= 200) { return num - 100; } return num; } }Context.java
public class Context { private Strategy strategy = null; public Context(Strategy strategy) { if (strategy != null) { this.strategy = strategy; } } public double cost(double num) { // TODO Auto-generated method stub if (strategy != null) { return strategy.cost(num); } else { return num; } } }Client.java
public class Client { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Context context = new Context(new StrategyB()); System.out.println(context.cost(250)); } }
相关文章推荐
- Java设计模式 -- 策略模式
- [设计模式] - 策略模式(Java篇)
- Java设计模式-----Strategy策略模式
- 设计模式之三 --- 策略模式(Strategy Pattern) (java)
- java设计模式-策略模式
- java设计模式之 策略模式
- Java设计模式之策略模式
- 设计模式一:java设计模式之策略模式(一)
- java设计模式---Strategy Pattern---策略模式
- JAVA 设计模式之 策略模式
- java设计模式之strategy(策略模式)和policy模式(泛化的strategy模式)
- java 设计模式-策略模式
- Java设计模式 Design Pattern:策略模式 Strategy Pattern
- java设计模式--策略模式
- Java设计模式-----Strategy策略模式
- java设计模式-----策略模式
- All About JAVA 关于设计模式中的“策略模式”
- 设计模式:策略模式的实现 c++ 与 java
- java 设计模式--策略模式(strategy)
- java设计模式:策略模式(Strategy)