【问题标题】:Using MVVM architecture. what is the best way to address cross cutting concerns?使用 MVVM 架构。解决交叉问题的最佳方法是什么?
【发布时间】:2018-12-19 17:46:53
【问题描述】:

在 android 中使用 MVVM 架构,解决横切问题的最佳方法是什么。


例如

  • 如果需要,即使在屏幕唤醒时也会显示登录屏幕,因为它已经在后台很长时间了。
  • 处理来自服务器的错误。
  • 在创建活动之前检查是否已通过身份验证。

【问题讨论】:

    标签: android mvvm login cross-cutting-concerns


    【解决方案1】:

    我认为 MVVM 本身不一定代表您的横切关注点。通常,您的 ViewModel 处理您的业务逻辑,也就是 core concerns。但是,您的横切关注点会分散在不同的层(模型、视图、视图模型)中。

    例如,假设您的应用程序具有日志记录方面(横切关注点)。然后,此记录器将作为依赖项注入到您的 ViewModel 中,以记录事件。或者另一个例子是你的由 HTTP 客户端代表的网络功能被注入到你的模型层中,这样你就可以进行 REST API 调用。这些横切关注点或依赖关系可以限定为应用程序的生命周期,因为它们无处不在。

    使用Dagger 创建具有应用程序范围的这些依赖项可能会对您有所帮助。

    TLDR: MVVM 有助于分离关注点,但您应该使用依赖注入适当地用横切关注点/依赖项组合您的类。

    【讨论】:

      【解决方案2】:

      第一个可以使用服务和广播接收器。 对于处理错误,我的建议是使用 rxjava 。

      第三个简单 使用全局事件总线,您可以实现不同的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-10
        • 1970-01-01
        • 2010-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多