Java设计模式(四)策略模式
实例一:旅游出行策略
旅游出行方式可以有多种,如可以乘坐飞机旅游,也可以乘火车旅游,如果有兴趣自行车游也是一种极具乐趣的出行方式。不同的旅游出行方式有不同的实现过程,客户根据自己的需要选择一种合适的旅游方式。在本实例中我们用策略模式来模拟这一过程。
类图:
Context: 环境类
class MyContext
{
private TravelStrategy ts;
public MyContext(TravelStrategy ts)
{
this.ts=ts;
}
public void travelMethod()
{
ts.travelMethod();
}
}
Strategy: 抽象策略类
interface TravelStrategy
{
public void travelMethod();
}
ConcreteStrategy: 具体策略类
class AirplaneStrategy implements TravelStrategy
{
public void travelMethod()
{
System.out.println("飞机游!");
}
}
class TrainStrategy implements TravelStrategy
{
public void travelMethod()
{
System.out.println("火车游!");
}
}
class BicycleTravelStrategy implements TravelStrategy
{
public void travelMethod()
{
System.out.println("自行车游!");
}
}
客户端:
public class Client {
public static void main(String args[])
{
MyContext mc=new MyContext(new BicycleTravelStrategy());
mc.travelMethod();
}
}
结果: