-------第一次寫東西稠屠,寫的不好峦睡,不好意思。
什么是MVP模式呢权埠?我的理解就是老的MVC架構(gòu)模式的一種延伸榨了,能體現(xiàn)一種面向接口編程的思想。之所以會(huì)有MVP攘蔽,是因?yàn)镸VC中龙屉,C即Controllor對(duì)應(yīng)于Activity或者Fragment。他們負(fù)責(zé)的東西太多了满俗。比如:控件的初始化转捕,網(wǎng)絡(luò)請(qǐng)求,數(shù)據(jù)綁定唆垃,事件傳遞等五芝。這顯得我們的Controllor太過于臃腫。而為了給Controllor減輕負(fù)擔(dān)辕万,于是就有了Presenter這個(gè)一個(gè)中間層枢步,讓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)圖:
通過上面的幾個(gè)圖我們不難發(fā)現(xiàn)砖茸,MVP模式中Presenter在這整個(gè)模式中顯得很重要隘擎,那么問題來了(這也是我沒用想明白的事情):
1、Presenter通過接口的方式提高了代碼的復(fù)用性渔彰,降低了耦合度嵌屎,但是如果業(yè)務(wù)非常復(fù)雜的時(shí)候Presenter層會(huì)不會(huì)也會(huì)像MVC模式中的Activity一樣顯得很臃腫。
2、Presenter既然負(fù)責(zé)完成View于Model間的交互,那么它的生命周期怎么去控制前鹅。
3自晰、Presenter層的出現(xiàn),雖然降低了耦合度,但是相對(duì)于MVC來說代碼量會(huì)增加部分(對(duì)每個(gè)界面的把控難度也增加了仗嗦,因?yàn)槟阋┙涌诶袒牛厝灰宄@個(gè)界面應(yīng)該做的事情)淤堵,應(yīng)該怎么去提高開發(fā)效率寝衫。
4、Presenter在與View交互的時(shí)候拐邪,如果這個(gè)界面是一個(gè)表單界面慰毅,字段又很多的情況下View與Presenter之間又怎么去交互。
我也希望有人能幫我解決這個(gè)問題扎阶。謝謝