Как работает модель?

Всем привет.

Не могу разобраться как правильно работает модель.

  1. Представляет из себя прикладную область, например телефон?

  2. Представляет из себя прикладную область и бизнес-логику, например метод позвонить, метод показать номер?

  3. Представляет из себя прикладную область но бизнес логика выноситься, например в сервис?

  4. Представляет из себя прикладную область, но какие-то методы могут находиться в модели, например которые тесно связаны с моделью, например метод валидации, а методы менее связанные в сервисы?

  5. Какой-то другой вариант, какой правильно должна быть модель.

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

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


Ответы (2 шт):

Автор решения: CrazyElf

MVVM - это только про то, как Model взаимодействует с View, в данном случае через прокладку ViewModel. А ваши все вопросы вообще про другое. С точки зрения MVVM все ваши вопросы касаются только модели, да.
И MVC вам тоже не поможет, это опять же про взаимодействие модели и представления, только через другую парадигму.

В общем, вам надо какие-то другие совсем концепции изучать. Например, Гексагональную архитектуру, или, более подробно, Шаблоны проектирования. Про бизнес-логику, репозитории, сервисы и прочее вам нужно копать именно сюда - в архитектуру и шаблоны проектирования.

→ Ссылка
Автор решения: Васька

В общем как понял, все зависит от контекста, где то Модель может просто описывать прикладную область, без методов, а где-то может не только описывать но и нужна бизнес логика если нужно, что-то делать с данными определенного объекта. Что касается репозиториев и сервис к модели они не относятся, а относятся только к VM.

→ Ссылка