Модель в MVC должна быть классом или это просто общая модель? - PullRequest
0 голосов
/ 19 ноября 2018

Я понимаю, что смешиваю / путаю две разные темы, но мне кажется, что в большинстве популярных MVC-фреймворков я сталкиваюсь с моделью, ориентированной на класс / объект (и использует какой-то ORM или ODM, которые яможет не захотеть использовать).

Мой вопрос таков: если я делю свои файлы на модели, представления и контроллеры, но моя модель - это просто отдельный файл , который обрабатывает бизнес-логику, проверяет правильностьданные и обрабатывают связь с базой данных ... но я делаю это по-своему, не объектно-ориентированно ... и, возможно, просто использую супер упрощенные операторы if для проверки ... это все еще считается моделью?Это все еще будет считаться MVC?

Нужно ли, чтобы модель была ориентирована на класс / объект или это просто супер общий шаблон / предпочтение?

Спасибо !!

1 Ответ

0 голосов
/ 19 ноября 2018

В общем случае «модель» относится к вашей модели бизнес-объекта (BOM) .Если вы подпишетесь на Domain Driven Design (DDD) , тогда ваши Модели в архитектуре Model View Controller (MVC) будут представлять ваши спецификации как классы или интерфейсы.Эти спецификации также могут быть вашими классами в архитектуре Object Relational Map.Поскольку для интерфейса лучше быть описанием того, что что-то может сделать, а классом - описание того, что что-то есть, вы будете склонны видеть ваши Модели в виде классов, а не интерфейсов.С точки зрения того, какая «логика» разрешена в этих модельных классах, это действительно зависит от вас и вашей команды.Например, несмотря на то, что проверка моделей обычно проводится в моделях, вы можете захотеть абстрагировать эти правила в отдельный класс проверки данных, который использует ваша модель.Как правило, в отношении бизнес-логики не существует черно-белого правила, но, как правило, для каждого класса рекомендуется брать на себя одну ответственность, основанную на Принципе единой ответственности как части SOLID *.Модель 1008 *.Исходя из моего опыта, когда я назвал классы «Модель» вещами, которые не были моделями бизнес-объектов, например, «RepositoryModel», может возникнуть путаница в отношении того, где было представление кода модели данных.Вместо этого я рекомендую использовать слово «Модель», чтобы зарезервировать для вещей, с которыми знакомы конечные пользователи, и избегать слова «Модель» для вещей, которые они не могут.

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