Java控制器应该包含哪些代码?
我正在从事一个支持Spring的web项目,其中有多个控制器。最近,我与高级开发人员讨论了控制器中应该包含哪些代码 他们中的一些人说,使控制器重量轻;只有调用方法才能进入控制器内部。即使只有3行处理,也要使它们成为单独的方法,并从控制器中调用它们,如下所示Java控制器应该包含哪些代码?,java,spring,controller,Java,Spring,Controller,我正在从事一个支持Spring的web项目,其中有多个控制器。最近,我与高级开发人员讨论了控制器中应该包含哪些代码 他们中的一些人说,使控制器重量轻;只有调用方法才能进入控制器内部。即使只有3行处理,也要使它们成为单独的方法,并从控制器中调用它们,如下所示 public ModelAndView offersMapView(HttpServletRequest request, HttpServletResponse response) { Map<String, Object>
public ModelAndView offersMapView(HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> contentMap = getServiceLocator().getHyperLocalService().getOffersHubContents(searchPostcode, gmapKey, ip);
return getViewGenerator().generateOffersHubMapView(brand, contentMap);
}
公共模型和视图提供的映射视图(HttpServletRequest请求,HttpServletResponse响应){
Map contentMap=getServiceLocator().getHyperLocalService().getOffersHubContents(searchPostcode,gmapKey,ip);
返回getViewGenerator();
}
其中generateOffersHubMapView(brand,contentMap)方法只包含2行代码
public ModelAndView generateOffersHubMapView(Brand brand, Map<String, Object> contentMap) {
ModelAndView mv = POGAModelandView.createWebModelAndView(brand, WLConstants.__HUB_OFFERS);
mv.addAllObjects(contentMap);
return mv;
}
public model和view generateoffershubmappview(品牌、地图内容地图){
ModelAndView mv=POGAModelandView.createWebModelAndView(品牌,WLConstants.\uuuuuHub\u提供);
mv.addAllObjects(contentMap);
返回mv;
}
我的观点是,除非我们有足够多的代码处理行,否则创建两行独立视图生成器的方法是不好的
相反的观点是创建单独的方法来保持层之间的隔离
我可以问问社区,他们认为什么是更好的方法吗?如果可能的话,你能提供一些参考资料来支持你的陈述吗?没有规定这样做
Even if there are only 3 lines of processing, make them separate methods
我认为如果没有合理的理由,每三行分开一行只会使事情变得复杂。专注于可重用性和可读性。如果在单个方法中有可重用代码,请将其拆分。如果你有一个方法太长,而且做了很多事情,那就把它分开。阅读和上的讨论
就我个人而言,generateOffersHubMapView方法拆分在您的示例中没有多大意义。没有这样的规则
Even if there are only 3 lines of processing, make them separate methods
我认为如果没有合理的理由,每三行分开一行只会使事情变得复杂。专注于可重用性和可读性。如果在单个方法中有可重用代码,请将其拆分。如果你有一个方法太长,而且做了很多事情,那就把它分开。阅读和上的讨论
就我个人而言,generateOffersHubMapView方法拆分在您的示例中没有多大意义。我不确定“直到我们有了代码处理的行数”是什么意思,但一般来说,我会说,不要根据代码的行数来考虑代码的有用性。。。在一个单独的方法中使用几行代码并没有什么错(事实上,我认为这通常比使用长方法更具可读性)。试着把代码放在你觉得它“属于”的地方,即尽可能地保留封装(我知道在实践中有时很难确定)。我在读这两行时感到困惑,我想如果你在一年后读代码,你也会有同样的感觉。所以,至少要考虑可读性。我不确定你所说的“直到我们有了代码处理的行数”是什么意思,但一般来说,我会说,不要以代码的行数来考虑代码的有用性。。。在一个单独的方法中使用几行代码并没有什么错(事实上,我认为这通常比使用长方法更具可读性)。试着把代码放在你觉得它“属于”的地方,即尽可能地保留封装(我知道在实践中有时很难确定)。我在读这两行时感到困惑,我想如果你在一年后读代码,你也会有同样的感觉。所以,至少要考虑可读性。