Контроллер Java в каком коде находиться? - PullRequest
1 голос
/ 12 января 2012

Я работаю над веб-проектом с поддержкой Spring, в котором у нас есть несколько контроллеров. Недавно я обсуждал со старшими разработчиками, какой код должен идти в контроллере.

Некоторые из них сказали, что облегчают контроллер; Только вызывающие методы должны идти внутрь контроллера. Даже если есть только 3 строки обработки, сделайте их отдельными методами и вызовите их из контроллера следующим образом

public ModelAndView offersMapView(HttpServletRequest request, HttpServletResponse response) {

Map<String, Object> contentMap = getServiceLocator().getHyperLocalService().getOffersHubContents(searchPostcode, gmapKey, ip);

            return getViewGenerator().generateOffersHubMapView(brand, contentMap);
}

Где метод 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;
    }

Моя точка зрения заключалась в том, что 2 строки, создающие отдельный метод генератора представления, не годятся, пока у нас не будет количества строк обработки кода.

Противоположной точкой зрения было создание отдельного метода для сохранения разделения между слоями.

Могу ли я спросить сообщество, что они считают лучшим подходом? Если возможно, не могли бы вы предоставить ссылки в поддержку ваших заявлений?

1 Ответ

1 голос
/ 12 января 2012

Не существует правила, которое гласит, что

 Even if there are only 3 lines of processing, make them separate methods 

, и я думаю, что разделение каждых трех строк без уважительной причины для этого только усложнит ситуацию.Сконцентрируйтесь на повторном использовании и удобочитаемости.Если у вас есть код многократного использования в одном методе, разделите его.Если у вас есть метод, который слишком длинный и делает много вещей, разделите его.Прочитайте обсуждение в https://stackoverflow.com/questions/20981/how-many-lines-of-code-is-too-many и https://stackoverflow.com/questions/903754/do-you-still-limit-line-length-in-code.

Лично я бы сказал, что метод splitOffersHubMapView не имеет большого смысла в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...