- 定义:定义一系列的算法,把它们一个个封装起来,并且使他们能够相互替换。此模式使得算法可以独立于使用它们的客户而变化。
题目:某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略设计模式来实现该需求。
import java.util.*;
interface BrakeBehavior{
pubilic void stop();
/其余代码省略/
}
class LongWheelBrake implements BrakeBehavior{
public void stop(){
System.out.println("模拟长轮胎刹车痕迹!");
}
/其余代码省略/
}
class ShortWheelBrake implements BrakeBehavior{
public void stop(){
System.out.println("模拟短轮胎刹车痕迹!");
}
/其余代码省略/
}
abstract class Car{
protected BrakeBehavior wheel;
public void brake(){
wheel.stop();
}
/其余代码省略/
}
class ShortWheelCar extends Car{
public ShortWheelCar(BrakeBehavior behavior){
wheel=behavior;
}
/其余代码省略/
}
class StrategyTest{
public static void main(String[]args){
BrakeBehavior brake=new ShortWheelBrake();
ShortWheelCar car1=new ShortWheelCar(brake);
car1.brake(); //调用ShortWheelCar的父类方法
}
}