带有RxAndroid + Retrofit的Android MVP

时间:2015-11-20 06:34:22

标签: android design-patterns mvp rx-java rx-android

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

但是我无法正确理解Rx + Retrofit代码应该去哪里?我认为它应该通过Interactors在Model Layer中,但仍然可以有人对此有所了解吗?

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

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

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

我正在关注这篇文章 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

2 个答案:

答案 0 :(得分:5)

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

然后你会有一个带有Observer的Presenter,它对这个用户列表很感兴趣,所以它会被订阅到Observable。

最后,当此Observer in包含来自Observable(onCompleted)的所有数据时,它将转换此数据(如果需要)并传递给将负责显示它的View。

答案 1 :(得分:5)

有很棒的帖子解释mvp。 Rx只是它的附加工具。

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

有深入的解释和源代码与示例。