《android-MVP模式的困惑》

什麼是MVP模式呢?個人理解就是老的MVC架構模式的一種延伸,能體現一種面向接口編程的思想。之因此會有MVP,是由於MVC中,C即Controllor對應於Activity或者Fragment。他們負責的東西太多了。好比:控件的初始化,網絡請求,數據綁定,事件傳遞等。這顯得咱們的Controllor太過於臃腫(即又當C又當V)。而爲了給Controllor減輕負擔,因而就有了Presenter這個一箇中間層,讓Presenter負責完成View於Model間的交互。這有點像Web開發中的Service,什麼業務邏輯都放在這裏來處理,而後再與Action交互。編程


在網上也看到了不少圖形來解釋MVP與MVC的區別,以下:網絡


這是mvc:架構


這是MVP:mvc


主要區別是這樣的:接口

還有就是真個項目的結構圖:生命週期



經過上面的幾個圖咱們不難發現,MVP模式中Presenter在這整個模式中顯得很重要,那麼問題來了(這也是我沒用想明白的事情):事件

一、Presenter經過接口的方式提升了代碼的複用性,下降了耦合度,可是若是業務很是複雜的時候Presenter層會不會也會像MVC模式中的Activity同樣顯得很臃腫。開發


二、Presenter既然負責完成View於Model間的交互,那麼它的生命週期怎麼去控制。it


三、Presenter層的出現,雖然下降了耦合度,可是相對於MVC來講代碼量會增長部分(對每一個界面的把控難度也增長了,由於你要些接口,必然要清楚這個界面應該作的事情),應該怎麼去提升開發效率。io


四、Presenter在與View交互的時候,若是這個界面是一個表單界面,字段又不少的狀況下View與Presenter之間又怎麼去交互。




我也但願有人能幫我解決這個問題。謝謝

相關文章
相關標籤/搜索