复习下一些设计模式,第一个就是策略模式,在网上找了些资料看到了很多例子,这里自己也想出了一个例子,方便理解或以后忘记了回忆起来方便。
汽车启动、行驶、刹车停止这个过程中涉及到加速行驶、匀速行驶、减速行驶几种形式的行驶。
这里定义一个接口叫做行驶(Travel)
/**
* 行驶的行为接口
*/
interface Travel {
/**
* 行驶方法
*/
public void travel();
}
/**
* 加速行驶
*/
class FastTravel implements Travel {
public void travel() {
System.out.println("加速行驶-------------");
}
}
/**
* 匀速行驶
*/
class NormalTravel implements Travel {
public void travel() {
System.out.println("匀速行驶-------------");
}
}
/**
* 减速行驶
*/
class SlowTravel implements Travel {
public void travel() {
System.out.println("减速行驶-------------");
}
}
/**
* 汽车类
*/
class Car {
private Travel travel;
public Car(Travel travel) {
this.travel = travel;
}
public void travel() {
this.travel.travel();
}
}
汽车行驶测试类
public class Test {
public static void main(String[] args) {
Car car;
System.out.println("汽车启动了------");
car = new Car(new FastTravel());
car.travel();
System.out.println("汽车加速完成------");
car = new Car(new NormalTravel());
car.travel();
System.out.println("汽车刹车------");
car = new Car(new SlowTravel());
car.travel();
}
}
本文通过汽车行驶的不同状态(加速、匀速、减速)演示了策略模式的应用。通过定义一系列算法,并将每个算法封装起来,使它们可以互相替换,从而让算法的变化独立于使用算法的客户端。
930

被折叠的 条评论
为什么被折叠?



