Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java控制器应该包含哪些代码?_Java_Spring_Controller - Fatal编程技术网

Java控制器应该包含哪些代码?

Java控制器应该包含哪些代码?,java,spring,controller,Java,Spring,Controller,我正在从事一个支持Spring的web项目,其中有多个控制器。最近,我与高级开发人员讨论了控制器中应该包含哪些代码 他们中的一些人说,使控制器重量轻;只有调用方法才能进入控制器内部。即使只有3行处理,也要使它们成为单独的方法,并从控制器中调用它们,如下所示 public ModelAndView offersMapView(HttpServletRequest request, HttpServletResponse response) { Map<String, Object>

我正在从事一个支持Spring的web项目,其中有多个控制器。最近,我与高级开发人员讨论了控制器中应该包含哪些代码

他们中的一些人说,使控制器重量轻;只有调用方法才能进入控制器内部。即使只有3行处理,也要使它们成为单独的方法,并从控制器中调用它们,如下所示

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方法拆分在您的示例中没有多大意义。

我不确定“直到我们有了代码处理的行数”是什么意思,但一般来说,我会说,不要根据代码的行数来考虑代码的有用性。。。在一个单独的方法中使用几行代码并没有什么错(事实上,我认为这通常比使用长方法更具可读性)。试着把代码放在你觉得它“属于”的地方,即尽可能地保留封装(我知道在实践中有时很难确定)。我在读这两行时感到困惑,我想如果你在一年后读代码,你也会有同样的感觉。所以,至少要考虑可读性。我不确定你所说的“直到我们有了代码处理的行数”是什么意思,但一般来说,我会说,不要以代码的行数来考虑代码的有用性。。。在一个单独的方法中使用几行代码并没有什么错(事实上,我认为这通常比使用长方法更具可读性)。试着把代码放在你觉得它“属于”的地方,即尽可能地保留封装(我知道在实践中有时很难确定)。我在读这两行时感到困惑,我想如果你在一年后读代码,你也会有同样的感觉。所以,至少要考虑可读性。