2014-07-24 49 views
7

我想用MVP模式實現我的下一個應用程序,所以我開始閱讀一些關於應該如何實現的文章。對我來說,主要的問題是這種模式有不同的方法。有人說我們應該把活動當作一種看法,但其他一些活動應該是主持人。Android MVP - 活動應該是視圖還是演示者?

作爲一個視圖的活動在這裏描述:MVP Android 它是有道理的。但另一方面,我發現這個答案與幾個upvotes https://stackoverflow.com/a/7609943和有人說,活動應該是一個主持人。

有沒有人有這種模式的經驗?

回答

2

我認爲將Activity視爲演示者是安全的。該視圖可以被視爲佈局XML文件。主持人與你在上面發佈的答案中所說的模型和視圖有直接的聯繫。在活動中,您連接到視圖,並保持在視圖和模型之間的媒介中,這實際上是演示者的功能。它從視圖中獲取輸入事件並設置從模型接收到的值以顯示在視圖中。

+2

查看並不提示底層的實施細節。視圖只是一個可以用很多方式實現的抽象(GWT視圖,模擬視圖,基於Android的視圖)。我真的認爲Android中的活動更接近View,因爲活動傾向於知道實現細節(基礎佈局XML等)。在單元測試中,讓Presenter成爲一項活動,將您緊緊綁定到Android環境,而獨立於視圖層的獨立主持人提供了更大的靈活性(您可以使用'mvn test'以這種方式輕鬆測試演示者)。 –

+0

那麼你作爲演講者提議什麼? –

+1

正如我上面所說的,主持人應該是一個視圖層不可知論的中間人。例如,它可以是一個簡單的類,它在最簡單的情況下通過接口引用模型和視圖,並且可以決定模型和視圖之間的交互和工作流程。假設你有這樣一個主持人,可以很容易地重用於不同的環境:Android,GWT等 –

8

經過一段時間的思考,我認爲活動應該被視爲一個視圖。如果我們將業務邏輯與活動分開,那麼使用片段或視圖來替換活動很容易。我們甚至可以將我們的模型和演示者應用到桌面應用程序中,只需向他們添加新的視圖即可。創建演示者作爲普通對象而不是活動也是更好的測試目的。

7

活動非常接近您的佈局,因此它應該是一個視圖。而且你的業務邏輯應該在你的Activity創建的Presenter中。 要了解更多關於MVP看看 - MVP for android

​​

0

MVP的樣品的術語查看這裏超載,機器人視圖比預期要使用的視圖不同在MVP模式中。 View是一個應該由Activity/Fragment實現的接口。你可以看看Official Android MVP Examples

我會建議從basic one開始它。這是來自頁面的流程。

enter image description here

+0

由於你提到的文檔「在這個版本的應用程序中,活動是創建並連接視圖和演示者的整體控制器「。 – YTerle

相關問題