【发布时间】:2018-12-19 17:46:53
【问题描述】:
在 android 中使用 MVVM 架构,解决横切问题的最佳方法是什么。
例如
- 如果需要,即使在屏幕唤醒时也会显示登录屏幕,因为它已经在后台很长时间了。
- 处理来自服务器的错误。
- 在创建活动之前检查是否已通过身份验证。
【问题讨论】:
标签: android mvvm login cross-cutting-concerns
在 android 中使用 MVVM 架构,解决横切问题的最佳方法是什么。
【问题讨论】:
标签: android mvvm login cross-cutting-concerns
我认为 MVVM 本身不一定代表您的横切关注点。通常,您的 ViewModel 处理您的业务逻辑,也就是 core concerns。但是,您的横切关注点会分散在不同的层(模型、视图、视图模型)中。
例如,假设您的应用程序具有日志记录方面(横切关注点)。然后,此记录器将作为依赖项注入到您的 ViewModel 中,以记录事件。或者另一个例子是你的由 HTTP 客户端代表的网络功能被注入到你的模型层中,这样你就可以进行 REST API 调用。这些横切关注点或依赖关系可以限定为应用程序的生命周期,因为它们无处不在。
使用Dagger 创建具有应用程序范围的这些依赖项可能会对您有所帮助。
TLDR: MVVM 有助于分离关注点,但您应该使用依赖注入适当地用横切关注点/依赖项组合您的类。
【讨论】:
第一个可以使用服务和广播接收器。 对于处理错误,我的建议是使用 rxjava 。
第三个简单 使用全局事件总线,您可以实现不同的方法。
【讨论】: