Использование архитектуры MVVM. Каков наилучший способ решения междисциплинарных проблем?

Используя архитектуру MVVM в Android, как лучше всего решить сквозные проблемы.


E.g.

  • Отображение экрана входа в систему, если требуется, даже когда экран просыпается, будучи в фоновом режиме в течение длительного времени.
  • Ошибка обработки с сервера.
  • Перед созданием активности проверьте, аутентифицированы ли вы.

person Dino    schedule 11.07.2018    source источник


Ответы (2)


Ну, для первого можно использовать сервисные и широковещательные приемники. Для обработки ошибок я советую использовать rxjava .

Для третьего просто используйте глобальную шину событий, чтобы вы могли реализовать разные подходы.

person user8024871    schedule 11.07.2018

Я не думаю, что MVVM обязательно представляет ваши сквозные проблемы непосредственно как таковые. Обычно ваша ViewModel имеет дело с вашей бизнес-логикой, также известной как основные проблемы. Однако ваши сквозные проблемы будут разбросаны по разным слоям (модель, представление, модель представления).

Например, скажем, у вас есть аспект ведения журнала в вашем приложении (сквозная проблема). Затем этот регистратор будет внедрен как зависимость в вашу ViewModel, чтобы, возможно, регистрировать события. Или другим примером может быть ваша сетевая функциональность, представленная HTTP-клиентом, внедренным в ваш уровень модели, чтобы вы могли выполнять вызовы REST API. Эти сквозные проблемы или зависимости могут быть ограничены сроком службы вашего приложения, поскольку они используются повсеместно.

Вам может быть полезно использовать Dagger для создания этих зависимостей с областью действия приложения.

TLDR: MVVM помогает с разделением проблем, но вы должны правильно составлять свои классы со сквозными проблемами/зависимостями с внедрением зависимостей.

person Dung Ta    schedule 13.07.2018