Android MVP 与 RxAndroid + 改造

Android MVP with RxAndroid + Retrofit

最近我开始阅读很多关于 MVP 的文章,我想用它来练习我的项目。

但是我无法正确理解 Rx + Retrofit 代码应该放在哪里?我认为它应该通过交互器在模型层中,但仍然有人可以分享一些关于这个的信息吗?

另外,RX 回调会发生什么情况? onNext()、onCompleted() 和 onFailure() 将数据传回 Presenter 还是我们实现监听器然后将其传递给 Presenter?

我也想在 onNext() 中获取数据时保留数据 (Realm/StorIO),所以再次将它传递给另一个 DataLayer 或者它应该去哪里?

我们还应该进一步解耦 Rx 回调吗?

我正在关注这个post https://davidguerrerodiaz.wordpress.com/2015/10/13/a-brief-introduction-to-a-cleaner-android-architecture-the-mvp-pattern/

和这个来自 antonioleiva.com 的单独 github 回购 https://github.com/antoniolg/androidmvp

正如您所指出的,RxJava 功能定义了模型层的用例,因此它将被放置在该层的交互器中。您可以为每个用例创建不同的交互器。假设您要从服务器中提取用户列表,这将是一个用例和一个具有 RxJava/Retrofit Observable.

的交互器

然后你将有一个 Presenter,里面有一个 Observer,它对这个用户列表感兴趣,所以它会订阅那个 Observable。

最后,当这个 Observer 拥有来自 Observable (onCompleted) 的所有数据时,它会转换这些数据(如果需要的话)并传递给 View,后者将负责显示它。

mvp 的解释很棒 post。 Rx 只是它的附加工具。

http://hannesdorfmann.com/android/mosby-playbook/

有深度讲解和示例源码