2015-11-20 63 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