Опция 1: ViewModelA <- модель A, ViewModelB -> модель A
Опция 2: ViewModelA <- ViewModelB -> Модель A
* ModelA меняет свои свойства * только с 1010 * по ViewModelB , поэтому в Option2 не нужно реализовывать какой-либо механизм, чтобы информировать кого-либо в том виде, в котором он изменился.
* Option2 требуется решение для обмена сообщениями между двумя моделями представления, тогда как Option1 нет.
Что лучше, Option1 или Option2 ?
РЕДАКТИРОВАТЬ:
Я решил реализовать Option2 , поскольку хотел, чтобы класс ModelA был простым POCO.
Я также переименовал ViewModelB в ModelViewB .
ОТВЕТ:
Наконец-то реализовано ... Вариант1. искушение заключалось в том, что я мог ModelA быть простым (например, никого не уведомляя). Но, в конце концов, это усложнило приложение, поскольку это было отклонением от реализаций других классов. Лучше придерживаться одного правила (даже с некоторыми накладными расходами).
Классы messenger на самом деле являются вспомогательными классами, и не так сильно, как основной компонент шаблона, поэтому я держал решение более близко к шаблону (как также упоминали парни ниже).