Соглашения о функциях кросс-контроллера для сети MVC?

У меня есть вопрос о лучших практиках размещения определенных функций в контроллерах в веб-фреймворке MVC.

Допустим, у меня есть контроллер User & Tags. У меня есть функция/метод addTag_to_user().

Каковы соглашения или рекомендации по размещению этого в контроллере пользователей или тегов?

Хотя лично я больше склоняюсь к тому, чтобы разместить его в контроллере тегов, так как мой контроллер Users может быть наполнен другими функциями, поскольку он является ключевым элементом (например). Таким образом, размещение его в контроллере тегов улучшает читабельность пользовательского контроллера.

Изменить. Возможно, на самом деле не имеет значения, где вы размещаете функции, связанные с двумя моделями. Я хочу посмотреть, каковы условности других людей.


person 3en    schedule 20.07.2010    source источник
comment
MVC — это стиль программирования, а не фреймворк. я думаю, вы имеете в виду MS ASP.Net MVC, или как это называется на этой неделе   -  person Javier    schedule 21.07.2010
comment
Думаю, я ошибся, упомянув структуру MVC. Хотя мой вопрос не зависит от фактической структуры или языка и касается концепций высокого уровня MVC и размещения/группировки определенных функций.   -  person 3en    schedule 21.07.2010


Ответы (1)


Объект Controller может содержать поведение, которое манипулирует доменом Model. Однако MVC обычно имеет один контроллер для каждого домена, и похоже, что «Пользователь» и «Тег» принадлежат одному и тому же домену.

Согласно Принципу эксперта по информации, у кого есть информация для выполнения этой обязанности? Тег не имеет представления о пользователе. Логичный ответ заключается в том, что пользователь несет ответственность за свои теги. Таким образом, ваш пользовательский класс будет поддерживать поведение addTag().

person Michael Brown    schedule 24.08.2012