复习下一些设计模式,第一个就是策略模式,在网上找了些资料看到了很多例子,这里自己也想出了一个例子,方便理解或以后忘记了回忆起来方便。
汽车启动、行驶、刹车停止这个过程中涉及到加速行驶、匀速行驶、减速行驶几种形式的行驶。
这里定义一个接口叫做行驶(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();
}
}