Соглашения о функциях кросс-контроллеров для сети MVC - PullRequest
2 голосов
/ 21 июля 2010

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

Допустим, у меня есть контроллер пользователя и тегов. У меня есть функция / метод с именем addTag_to_user ().

Каковы соглашения или лучшие практики для размещения этого в контроллере «Пользователи» или «Теги»?

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

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

1 Ответ

0 голосов
/ 24 августа 2012

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

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

...