Если я правильно понимаю, модели в MVVM содержат способ взаимодействия с объектами данных. Идея в том, что они не имеют никакой связи с чем-либо;они просто читают, записывают и хранят дружественную для программы версию этих данных. Это имеет смысл.
Но вот моя проблема: у меня есть программа для моей компании, которая работает как почтовый клиент. Таким образом, очевидный шаг в аспекте «Модель» заключается в создании модели, которая может считывать / записывать / хранить данные для каждого сообщения в почтовом ящике. Но моя программа также должна иметь возможность хранить почту в базе данных нашей компании, а также проверять, есть ли почта уже там. Для обработки базы данных у меня есть модель, которая делает то же самое для строк базы данных, что и модель почтовых сообщений для почты.
Итак, две модели обрабатывают два объекта данных, которые необходимо каким-то образом связать. Когда я загружаю почту, должен быть способ, чтобы эта почта проверялась по базе данных и возвращала DAO базы данных, чтобы поместить ее в модель, если она найдена. Я бы предпочел, чтобы каждая из моих моделей не знала друг о друге. Это на самом деле не их работа.
Так есть ли ответ иметь родительскую модель, которая содержит модель почты, а также модель базы данных? Должна ли родительская модель искать аналог базы данных для почтовой модели или эта работа принадлежит чему-то другому? Дизайн кода для меня является новым, поэтому все, что находится за пределами Model, View и View Model, было бы новым, но я хотел бы знать об этом.