【发布时间】:2019-08-07 10:41:49
【问题描述】:
在android中,在实现MVP模式时,应该检查哪一层网络连接?模型、视图还是演示者?
【问题讨论】:
-
恕我直言,以上都不是。数据访问应由您的数据层处理,例如存储库或数据源。这包括提供有关数据可用性的详细信息,例如您是否可以与服务器通信。
-
@CommonsWare 我是 MVP 新手。为了检查连接,需要 Context、ConnectivityManager 和 NetworkInfo。你能告诉我,把这个逻辑放在哪里吗?
-
正如@CommonsWare 所说;将其放入另一个包中,该包将承担有关数据的所有责任。有关数据的任何责任,例如访问数据、将从网络获取的数据转换为适当的数据模型类、将获取的数据持久化到本地缓存或本地数据库、将应用程序数据与云备份同步等。
-
想象一下这个流程: VIEW -- (input event) ---> PRESENTER --- (provide data) --> MODEL --- (data spec) ---> REPOSITORY -- (请求数据)--> 数据(获取数据 - 本地数据库、api 等或错误)。建议这个逻辑和责任在repository或者data层。
-
只需从全局应用程序类的 BehaviorRelay 中公开它。
标签: android android-mvp