2015-11-20 38 views
10

最近我开始阅读很多关于MVP的内容,我想用它来练习我的项目。Android MVP与RxAndroid +翻新

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

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

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

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

正如你指出的RxJava功能我下面这篇文章 https://davidguerrerodiaz.wordpress.com/2015/10/13/a-brief-introduction-to-a-cleaner-android-architecture-the-mvp-pattern/

这个单独的GitHub库从antonioleiva.com https://github.com/antoniolg/androidmvp

+0

我对Rx和Retrofit没有任何经验,但他们似乎是最好的生活在M.考虑P和V作为一种“附加”与用户交互,所以他们的责任只是通知一个用户和倾听交互。 P和V中没有商业逻辑。还要考虑你的M作为外部代码库的“开放门户”,可以在其他地方重新使用,例如在非用户交互应用程序(例如系统服务)中,或者甚至是其他类似GWT的环境中。这会通过不同层次的接口带来一定的复杂性,但这会让您的系统松散耦合。 –

回答

5

定义模型层的使用情况,因此将被放置在这层的交互器。您可以为每个用例创建一个不同的交互器。假设你从你的服务器上拉出一个用户列表,这将是一个用例和一个具有RxJava/Retrofit Observable的交互器。

然后你将有一个在其中有一个Observer的Presenter,它对这个用户列表感兴趣,所以它将订阅该Observable。

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

5

有真棒解释mvp。 Rx只是它的附加工具。

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

有深的解释,并与实施例的源代码。

+0

链接有问题:404 ...未找到页面。 –

+0

是的,他们删除了这篇文章,因为 –

+0

您可以从这里访问该主题:http://webcache.googleusercontent.com/search?q=cache:http://hannesdorfmann.com/android/mosby-playbook&gws_rd=cr&ei= Sm36VtWFEIbWaofztLgM – Marzouk