2015-12-09 332 views
6

我正在嘗試遵循MVP模式。但是,我對如何處理這種模式下的適配器和視圖持有者存在一些疑問。適配器作爲演示者?或者與演示者交談? Android和MVP

我應該使用適配器作爲演示者嗎?擁有業務邏輯?

或者我應該傳遞一個處理列表邏輯的演示者實例,然後在與適配器元素髮生任何交互時調用演示者的方法?

謝謝

+0

我認爲Android的看法適配器是純粹的V-範圍的東西,如果適配器是主持人 - 這些主持人是在視圖中實施內部某處。另外,演示者不應該包含業務邏輯,因爲他們只是M和V之間的中介。在我當前的基於MVP的項目中,演示者完全不知道列表適配器,因爲他們不應該在乎如何顯示something_的_list(例如,主持人只是告訴一個視圖:「以某種方式顯示路由」,並且只監聽一個視圖事件「onRouteSelected」,因爲路由可以從任何類型的小部件獲得,而不一定是列表)。 –

+1

那麼,你有沒有參考適配器內的演示者?或者,您是否將偵聽器添加到適配器事件中,然後重定向到演示者?@LyubomyrShaydariv –

+0

是的,第二種情況:適配器可以與託管視圖進行交互,然後一個特定視圖決定如何將事件轉換/委派給演示者(或演示者監聽器 - 取決於您如何分隔演示者和監聽器接口)。 –

回答

3

有一個在Android的

實施MVP要回答你的問題並沒有確切的/正確的定義,在我看來,Presenter不應該有任何Android的邏輯。

這樣,Adapter將是一個「View」,那麼即演示者提供了它的數據(通過ActivityFragment),它只是與如何呈現該交易。

我會做MVP如下。

  1. 模式 - POJO的,分析,存儲(SQLlite)和檢索數據(HTTP)。很顯然,我會將POJO的解析和數據庫邏輯分成子文件夾 - 但這一切都屬於我的模式。

  2. 查看 - ActivityFragmentAdapters - 活動&片段保持參照演示,讓他們要顯示的數據。如何顯示這些數據/信息,外觀+手感等在View中處理。

  3. 演示 - 中間人,提供了邏輯到輸入即按鈕點擊,數據的檢索,輸入&驗證然後將結果傳遞迴視圖(ActivityFragment

這裏有MVP

一個偉大的文章,以下是MVP

的簡化 diagram

enter image description here

回答這個question修改(也由我回答)