java controller用策略模式代替ifelse,返回页面字符串
时间: 2023-05-21 10:03:48 浏览: 59
策略模式可以用来替代 if-else 语句,使代码更加灵活和可扩展。在 Java 中,可以通过定义一个接口和多个实现类来实现策略模式。在 Controller 中,可以根据不同的请求参数选择不同的策略实现类,然后调用其方法返回页面字符串。以下是一个简单的示例代码:
首先定义一个策略接口:
public interface PageStrategy {
String getPage();
}
然后定义多个策略实现类:
public class HomePageStrategy implements PageStrategy {
@Override
public String getPage() {
return "home";
}
}
public class AboutPageStrategy implements PageStrategy {
@Override
public String getPage() {
return "about";
}
}
在 Controller 中,根据请求参数选择不同的策略实现类:
public class MyController {
private Map<String, PageStrategy> strategies = new HashMap<>();
public MyController() {
strategies.put("home", new HomePageStrategy());
strategies.put("about", new AboutPageStrategy());
}
public String handleRequest(String page) {
PageStrategy strategy = strategies.get(page);
if (strategy == null) {
throw new IllegalArgumentException("Invalid page: " + page);
}
return strategy.getPage();
}
}
这样,就可以通过策略模式来代替 if-else 语句,使代码更加灵活和可扩展。