我目前正在为我的servlet使用前端控制器模式,并在doGet()
和doPost()
方法中使用大型if-else if结构;但是,我的应用程序开始添加越来越多的功能,结果if-else块失控。我想知道什么是处理这种情况的流行策略(同时维护前端控制器)。
我所能想到的就是使用一个哈希表,它将路径(从请求URL)映射到确定适当JSP(并设置属性)的辅助方法。
我喜欢Spring框架的外观;但是,我目前无法移植到框架,Spring之类的东西如何避免我面临的问题?
答案 0 :(得分:1)
独立于框架或技术,我遇到过几次你的情况,我一直在做的是使用命令模式:
https://en.wikipedia.org/wiki/Command_pattern
并在命令处理程序中使用Factory模式,该模式实例化相应的类以使用命令对象的信息处理请求。
使用这种架构,您可以灵活应对,并且很容易实现:)
答案 1 :(得分:0)
使用重构模式中描述的Replace Conditional with Command重构“模式”。
而不是
if(conditionA){
//...
}else if(conditionB){
//...
}
...
做:
Handler handler = LookupHandlerBy(condition);
handler.execute();