2

我目前正在为我的 servlet 使用前端控制器模式,并在doGet()anddoPost()方法中使用大型 if-else if 结构;但是,我的应用程序开始添加越来越多的功能,结果 if-else 块失控了。我想知道处理这种情况的一些流行策略是什么(同时维护一个前端控制器)。

我能想到的可能就是使用一个哈希表,将路径(从请求 url)映射到确定适当 JSP(并设置属性)的辅助方法。

我喜欢 Spring 框架的外观;但是,我目前无法移植到框架,像 Spring 这样的东西如何避免我面临的问题?

4

2 回答 2

1

独立于框架或技术,我已经多次遇到您的情况,我总是使用命令模式:

https://en.wikipedia.org/wiki/Command_pattern

在命令处理程序中,我使用工厂模式实例化适当的类来处理带有命令对象信息的请求。

使用这种架构,您将非常灵活,并且很容易实现:)

于 2013-09-11T11:33:48.847 回答
0

使用重构为模式中描述的用命令重构替换条件“模式”。

代替

if(conditionA){
  //...
}else if(conditionB){
  //...
}
 ...

做 :

Handler handler = LookupHandlerBy(condition);
handler.execute();
于 2013-09-11T18:14:21.373 回答