【问题标题】:Java best practice: optimum number of calls in the ControllerJava 最佳实践:Controller 中的最佳调用次数
【发布时间】:2014-09-24 14:16:53
【问题描述】:

我们有一个内部网站,其中包含数十种报告供用户选择。这些转到带有控制器的 Reports Servlet。它包含如下代码:

if (report.equals('reportOne')){
   bo.runReportOne(requestObjectData);
} else if(report.equals('reportTwo')){
   bo.runReportTwo(requestObjectData);
}

在分解事物之前,其中有多少 if/else 是最优的。例如,具有多个基于功能的 servlet。例如 ProcessReportsServlet、ResultReportsServlet、BillingReportServlet 等

谢谢, 布里塔

【问题讨论】:

  • 一般来说这个逻辑不应该在Controller中。最好有一个服务类(例如 GenerateReportService)并将请求详细信息传递给它。服务应读取报告“名称”(?),如 - 'reportOne' - 应检索/生成 reportOne 并将其发送回控制器,控制器将作为响应发送给用户。
  • 另外,您应该避免为每个单独的报告使用新方法。尝试创建一个通用服务方法,它接受 reportName 和其他需要的信息,并返回所需的报告。

标签: java servlets model-view-controller


【解决方案1】:

通常,如果您知道自己将要添加到此列表中最终您应该计划清理您将创建的 if-else 链,或者立即清理它。您可能还想找出一种不同的方法,而不是为您可能创建的每种类型的报告提供一种新方法。我认为任何少于 5 个 if-else 语句都可以。

【讨论】:

  • 5 或 6 是我听到的最大值。对于清理,请考虑使用enum,即使您还没有完全使用 MVC-service-DAO。
猜你喜欢
  • 1970-01-01
  • 2020-03-22
  • 2010-09-08
  • 2011-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多