我有一种类型的网址,他们的参数可能有不同的值。 例: www.mycompany.com/:location
if ($location === 'country') {
//countries will be loaded from database
} else if ($location === ''province") {
//province will be loaded from database
} else if ($location === ''neighborhood") {
//neighborhood will be loaded from database
}
url有更多类型的参数可以应用相同的逻辑。
我应该对这种逻辑采用什么样的设计模式?
答案 0 :(得分:0)
我会实现provider
,根据输入参数返回不同的strategies
。
因此,实施一种策略模式,可以多次使用相同的策略。
答案 1 :(得分:0)
这是工厂模式的标志。
public class LocationFactory {
public Location getLocation(location){
if(location== null){
return null;
}
if(location.equalsIgnoreCase("province")){
return new Province();
} else if(location.equalsIgnoreCase("country")){
return new Country();
} else if(location.equalsIgnoreCase("neighbourhood")){
return new NeighborHood();
}
return null;
}
}
public class Country implements Location{
@Override
public void load() {
System.out.println("loading country from database");
}
}
你可以像这样使用它:
Location loc = LocationFactory.getLocation('country');
loc.load();
请参阅http://www.tutorialspoint.com/design_pattern/factory_pattern.htm