@StanGrin

Что такое Model в МVС?

Что такое Model в MVC ? это модель представления например RegistrationViewModel которая является POCO и содержит данные необходимые для отображения страницы( шаблонизатора )? Или это модель бизнес логики например User? Как вы понимаете модель в mvc?
  • Вопрос задан
  • 988 просмотров
Пригласить эксперта
Ответы на вопрос 5
Модели являются центральным местом представления бизнес-данных, правил и логики. Они часто повторно используются в разных местах. В хорошо спроектированном приложении, модели, как правило, намного больше, чем контроллеры.

В целом, модели
  • могут содержать атрибуты для представления бизнес-данных;
  • могут содержать методы с реализацией бизнес-логики;
  • не следует напрямую задавать запрос на доступ, либо сессии, либо любые другие данные об окружающей среде. Эти данные должны быть введены контроллерами в модели;
  • следует избегать встраивания HTML или другого отображаемого кода - это лучше делать в видах;
    избегайте слишком большого количества сценариев в одной модели.


Best Практик из Yii2
Ответ написан
@Free_ze
Пишу комментарии в комментарии, а не в ответы
В MVC модель - это как раз доменная сущность, с которой работает бизнес-логика (тоже относящаяся к части "Model"). Если же у вас есть необходимость как-то трансформировать/дополнять модель для передачи во View, то здесь и применяют т.н. ViewModels, на которые маппятся сущности.

MVC - это масштабируемый паттерн. Допустим, решение состоит из проектов:
  • содержащего доменные сущности и бизнес-логику
  • слой доступа к данным (DAL), который управляет хранением и передачей сущностей
  • web-интерфейс (ASP.NET MVC-приложение)


Выходит, что наше MVC-приложение само по себе является лишь интерфейсом (View) всего проекта, хотя и содержит внутри MVC-фреймворк, свои внутренние модели (правильнее теперь их звать вью-модели), контроллеры и вью.
Ответ написан
SamDark
@SamDark
Yii2 core team
M в MVC — это доменная-модель. То есть набор классов, отвечающий за логику приложения.
Ответ написан
@saltydogd
Бизнес логика все же выводится в контроллер, модель как правило соответствует объекту из предметной области (то что необходимо отображать/хранить), и дополнять ее расширенной логикой - ну не совсем этично (максимум хелперы какие-то да валидаторы)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы