-------第一次寫東西,寫的不好,不好意思。
什么是MVP模式呢?我的理解就是老的MVC架構(gòu)模式的一種延伸,能體現(xiàn)一種面向接口編程的思想。之所以會有MVP,是因?yàn)镸VC中,C即Controllor對應(yīng)于Activity或者Fragment。他們負(fù)責(zé)的東西太多了。比如:控件的初始化,網(wǎng)絡(luò)請求,數(shù)據(jù)綁定,事件傳遞等。這顯得我們的Controllor太過于臃腫。而為了給Controllor減輕負(fù)擔(dān),于是就有了Presenter這個一個中間層,讓Presenter負(fù)責(zé)完成View于Model間的交互。這有點(diǎn)像Web開發(fā)中的Service,什么業(yè)務(wù)邏輯都放在這里來處理,然后再與Action交互。
在網(wǎng)上也看到了很多圖形來解釋MVP與MVC的區(qū)別,如下:
這是mvc:
這是MVP:
主要區(qū)別是這樣的:
還有就是真?zhèn)€項(xiàng)目的結(jié)構(gòu)圖:
通過上面的幾個圖我們不難發(fā)現(xiàn),MVP模式中Presenter在這整個模式中顯得很重要,那么問題來了(這也是我沒用想明白的事情):
1、Presenter通過接口的方式提高了代碼的復(fù)用性,降低了耦合度,但是如果業(yè)務(wù)非常復(fù)雜的時候Presenter層會不會也會像MVC模式中的Activity一樣顯得很臃腫。
2、Presenter既然負(fù)責(zé)完成View于Model間的交互,那么它的生命周期怎么去控制。
3、Presenter層的出現(xiàn),雖然降低了耦合度,但是相對于MVC來說代碼量會增加部分(對每個界面的把控難度也增加了,因?yàn)槟阋┙涌冢厝灰宄@個界面應(yīng)該做的事情),應(yīng)該怎么去提高開發(fā)效率。
4、Presenter在與View交互的時候,如果這個界面是一個表單界面,字段又很多的情況下View與Presenter之間又怎么去交互。
我也希望有人能幫我解決這個問題。謝謝