Я пытаюсь изучить Android на стороне, и я проводил некоторые исследования и считаю, что паттерн MVVM - это путь, по которому я хочу идти.Я немного знаком с ним с WPF / XAML.Тем не менее, у меня есть вопрос о том, как надувается представление (активность / фрагмент).
Это мое общее понимание шаблона проектирования:
Модель находится на нижнем слое.Этот слой будет иметь бизнес-логику и сущности.Для каждого объявленного объекта таблица хранится в базе данных SQLite с использованием Room.Чтобы придерживаться инкапсуляции, все члены данных являются частными и доступны только через get()
методы.
Уровень доступа к данным хранит мою базу данных и DAO для сущности.Насколько я понимаю, DAO - это объект, отвечающий за взаимодействие между моделью представления и базой данных.
Модель представления - это способ представления данных.Он будет взаимодействовать с репозиторием, чтобы в конечном итоге получить доступ к базе данных, поскольку на базу данных будут ссылаться в репозитории.
У меня проблема с отношением View Model и View.Модель представления не имеет представления о представлении, я понимаю, но как представления завышаются?Я знаю, что это неправильно - но мой мыслительный процесс таков: если вы используете DataBinding для привязки, например, атрибута onClick
к методу в ViewModel и предположим, что этот метод отвечает за отображение диалогового окна, то ViewModel обладает знаниями View, потому чтоон отвечает за создание диалога.
По сути, мой вопрос в том, как разработчик придерживается парадигмы MVVM, когда дело доходит до надувания представлений?Если ViewModel не должен нести ответственность за какие-либо взаимодействия, связанные с View, а только за раскрытие его данных, есть ли еще один слой, который мне не хватает для преодоления инфляции?