WalkingRouteStrategy.java
package com.designpatterns.behavioral.strategy.classic;
public class WalkingRouteStrategy extends AbstractRouteStrategy {
private static final double PATH_DETOUR_FACTOR = 1.1;
private static final double AVERAGE_SPEED_KMH = 5.0;
@Override
public Route buildRoute(Location origin, Location destination) {
double distanceKm = straightLineDistanceKm(origin, destination) * PATH_DETOUR_FACTOR;
int minutes = (int) Math.round(distanceKm / AVERAGE_SPEED_KMH * 60);
return new Route(distanceKm, minutes, "walking");
}
}