Как работает модель?
Всем привет.
Не могу разобраться как правильно работает модель.
Представляет из себя прикладную область, например телефон?
Представляет из себя прикладную область и бизнес-логику, например метод позвонить, метод показать номер?
Представляет из себя прикладную область но бизнес логика выноситься, например в сервис?
Представляет из себя прикладную область, но какие-то методы могут находиться в модели, например которые тесно связаны с моделью, например метод валидации, а методы менее связанные в сервисы?
Какой-то другой вариант, какой правильно должна быть модель.
И еще вопросик с моделью как с ней должны взаимодействовать классы сервисы, репозитории, другие классы если такие имеются в части взаимодействия с моделями?
Видел где-то, что репозиторий может выступать как модель и возвращать данные, в общем не совсем понятно как все устроено, хелп.
Ответы (2 шт):
MVVM - это только про то, как Model взаимодействует с View, в данном случае через прокладку ViewModel. А ваши все вопросы вообще про другое. С точки зрения MVVM все ваши вопросы касаются только модели, да.
И MVC вам тоже не поможет, это опять же про взаимодействие модели и представления, только через другую парадигму.
В общем, вам надо какие-то другие совсем концепции изучать. Например, Гексагональную архитектуру, или, более подробно, Шаблоны проектирования. Про бизнес-логику, репозитории, сервисы и прочее вам нужно копать именно сюда - в архитектуру и шаблоны проектирования.
В общем как понял, все зависит от контекста, где то Модель может просто описывать прикладную область, без методов, а где-то может не только описывать но и нужна бизнес логика если нужно, что-то делать с данными определенного объекта. Что касается репозиториев и сервис к модели они не относятся, а относятся только к VM.