java策略模式

/**
* 策略模式测试
* 策略模式:是一种行为模式,不在于算法的实现而在于算法的封装,使客户端独立于各个策略 -针对对象的行为
* 简单工厂:旨在工厂对对象的创建 -针对对象的创建
*/
例子:
/**
* 路线选择抽象策略类
*/
public abstract class RoadStrategy {
//旅行方式
public abstract void travelWay();
}

/**
* 策略上下文
*/
public class ContextStrategy {
//抽象策略
private RoadStrategy roadStrategy;

public ContextStrategy(RoadStrategy roadStrategy) {
this.roadStrategy = roadStrategy;
}

//旅行方式
public void travel(){
roadStrategy.travelWay();
}
}
/**
* 骑车旅行
*/
public class BikeStrategy extends RoadStrategy {
@Override
public void travelWay() {
System.out.println("自行车出游......");
}
}
/**
* 自驾游
*/
public class CarStrategy extends RoadStrategy {
@Override
public void travelWay() {
System.out.println("开车自驾游....");
}
}
测试:
/**
* 策略模式测试
* 策略模式:是一种行为模式,不在于算法的实现而在于算法的封装,使客户端独立于各个策略 -针对对象的行为
* 简单工厂:旨在工厂对对象的创建 -针对对象的创建
*/
public class StrategyTest {
public static void main(String[] args) {
RoadStrategy bikeStrategy=new BikeStrategy();
ContextStrategy contextStrategy_bike=new ContextStrategy(bikeStrategy);
contextStrategy_bike.travel();

RoadStrategy carStrategy=new CarStrategy();
ContextStrategy contextStrategy_car = new ContextStrategy(carStrategy);
contextStrategy_car.travel();

}
}
原文地址:https://www.cnblogs.com/coderdxj/p/9635930.html