您的位置:首页 > 其它

设计模式之策略模式

2016-06-20 16:01 155 查看
描述:使用策略模式,在改变需求和扩展需求的时候,不需要改动以前的代码,只需要新增功能即可

使用场景:用不同的方式去达到相同的效果,这些方式就是策略

缺点:如果方式过多的话,会导致策略类过于冗余

//出行方式的共同接口

public interface TravelStrategy {

//出行方式
void travel();
}

//飞机出行方式

public class AirplaneStrategy implements TravelStrategy{

@Override
public void travel() {

System.out.println("搭乘飞机出行");
}

}

//火车出行方式

public class TrainStrategy implements TravelStrategy {

@Override
public void travel() {

System.out.println("坐火车出行");
}

}

//自行车出行方式

public class BicycleStrategy implements TravelStrategy {

@Override
public void travel() {

System.out.println("骑自行车出行");
}

}

//扩展轮船出行方式

public class ShipStrategy implements TravelStrategy {

@Override
public void travel() {

System.out.println("坐轮船出行");
}

}

//使用出行方式的人

public class Person {

private TravelStrategy travelStrategy;

public Person(TravelStrategy travelStrategy){
this.travelStrategy = travelStrategy;
}

public void travel(){
this.travelStrategy.travel();
}
}

//主方法

public class Main {

public static void main(String[] args){
TravelStrategy t1 = new AirplaneStrategy();
TravelStrategy t2 = new BicycleStrategy();
TravelStrategy t3 = new TrainStrategy();
TravelStrategy t4 = new ShipStrategy();
Person p = new Person(t4);
p.travel();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: