JAVA设计模式(策略模式)
2016-12-27 22:50
363 查看
一、概述
策略模式:定义了算法族,分别封闭起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户
二、场景
假期来临,旅游是一个不错选择,对于旅游出行方式有许多,这里仅通过一种方式,帮助理解策略模式,首先需要打车到火车站,然后做火车去要旅游的地点,然后做地铁到经典,为了避免中途修改交通工具,如地铁改为公交车,我们可以抽象出交通策略类,不同情况的行为。
三、代码
1.策略接口
2.出租车策略实现类
public class CarStrategy implements IStrategy {
@Override
public void action() {
System.out.println("打车去火车站");
}
}
3.火车策略实现类
4.地铁策略实现类
5.旅游类
6.测试类
策略模式:定义了算法族,分别封闭起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户
二、场景
假期来临,旅游是一个不错选择,对于旅游出行方式有许多,这里仅通过一种方式,帮助理解策略模式,首先需要打车到火车站,然后做火车去要旅游的地点,然后做地铁到经典,为了避免中途修改交通工具,如地铁改为公交车,我们可以抽象出交通策略类,不同情况的行为。
三、代码
1.策略接口
public interface IStrategy { void action(); }
2.出租车策略实现类
public class CarStrategy implements IStrategy {
@Override
public void action() {
System.out.println("打车去火车站");
}
}
3.火车策略实现类
public class TrainStrategy implements IStrategy { @Override public void action() { System.out.println("坐高铁去北京市"); } }
4.地铁策略实现类
public class SubWayStrategy implements IStrategy { @Override public void action() { System.out.println("坐地铁去景区"); } }
5.旅游类
public class Travel { private IStrategy iStrategy; public Travel(IStrategy iStrategy) { this.iStrategy = iStrategy; } public void action(){ iStrategy.action(); } }
6.测试类
public class Test { public static void main(String[] args) { Travel car = new Travel(new CarStrategy()); Travel train = new Travel(new TrainStrategy()); Travel subway = new Travel(new SubWayStrategy()); car.action(); train.action(); subway.action(); } }
相关文章推荐
- 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)