您的位置:首页 > 编程语言 > Java开发

JAVA设计模式(策略模式)

2016-12-27 22:50 363 查看
一、概述

策略模式:定义了算法族,分别封闭起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户

二、场景

假期来临,旅游是一个不错选择,对于旅游出行方式有许多,这里仅通过一种方式,帮助理解策略模式,首先需要打车到火车站,然后做火车去要旅游的地点,然后做地铁到经典,为了避免中途修改交通工具,如地铁改为公交车,我们可以抽象出交通策略类,不同情况的行为。

三、代码

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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: