将设计模式应用于具有不同参数的URL

时间:2016-06-09 07:32:42

标签: design-patterns

我有一种类型的网址,他们的参数可能有不同的值。 例: 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有更多类型的参数可以应用相同的逻辑。

我应该对这种逻辑采用什么样的设计模式?

2 个答案:

答案 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