MVVM
От: Flem1234 Украина  
Дата: 21.12.19 09:37
Оценка:
Всем привет.

Есть десктопное приложение со сложным интерфейсом и несколькими внешними сервисами (там и рест, и очереди, и голые сокеты, и база), которые генерируют события, отображаемые на этом интерфейсе.
Плюс пользователь может управлять внешними сервисами через интерфейс.

Сейчас все организовано как MVVM:
Представления для интерфейса
Классы разных сервисов для управления ими и получения от них событий.
Вью модель, которая сейчас занята в основном согласованостью своего состояния. Например, если пользователь выбрал какой-то элемент, то ему доступно то или другое, а третье не доступно.

Пытаясь упростить вью модели (они и так достаточно сложные), я выношу логику в дополнительные классы, которые используют и классы модели и класс вью модели. Например, пользователь нажал кнопку. Я должен поставить значение вью модели, дергнуть пару сервисов и по окончанию их работы восстановить значение из вью модели. Дополнительно, для обработки событий от внешних сервисов, приходится создавать дополнительные классы, основная работа которых среагировать на событие от сервиса, запросить еще данных от вью модели, вызвать пару сервисов, обновить вью модель.

В принципе, все получается нормально, но хочется как-то унифицировать (в любом смысле) классы, которые обрабатывают действия пользователя и реагируют на события сервисов.

В сторону каких паттернов посмотреть, бест практики там, подходы, и т.п.?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.