Вот несколько моментов, которые я бы посоветовал вам рассмотреть:
- MVVM как образец имеет свои корни еще в 2000-м, например, вот статья Мартина Фаулера о концепции, и в 2005 году Джон Госсман объявил образец в своем блоге.Да, это решает проблему с вращением в реализации шаблона Android, но эта проблема может быть решена без него.MVVM действительно необходим для отделения состояния представления от представлений, которые видны конечному пользователю.Как говорит Вики -
Модель представления является абстракцией представления, представляющего открытые свойства и команды.Вместо контроллера шаблона MVC или предъявителя шаблона MVP в MVVM есть механизм связывания, который автоматизирует связь между представлением и его связанными свойствами в модели представления.Модель представления была описана как состояние данных в модели.
Итак, в первую очередь это (как и все другие архитектурные шаблоны GUI в их корне) об абстракции между view и domain частей приложения, так что они могут варьироваться независимо, и последующие изменения в системе будут дешевыми.
- Создание объектов домена впросмотр области действия и их последующее использование представлением приводит к жесткой связи между представлением и объектами домена, что является плохой характеристикой любой системы.Кроме того, это еще одна причина для изменения внутренних элементов представления, потому что, если логика построения объекта домена изменяется, представление тоже придется изменить.
Если ViewModel
для вас излишне (как яМожно видеть, что его преимущества не важны для вас в данном конкретном случае, потому что пользовательский интерфейс не очень сложен, а его состояние облегчено), рассмотрите возможность использования менее тяжелой абстракции, такой как MVP.Таким образом, вы сможете сохранить абстракцию между представлением и моделью в вашем приложении (без нежелательной связи), и вам не придется поддерживать код, который вам не нужен.