談MVP對(duì)比,也談MVP優(yōu)化

前言

MVC

MVP

MVP 是從經(jīng)典的模式MVC演變而來(lái)。Controller/Presenter負(fù)責(zé)邏輯的處理,Model提供數(shù)據(jù),View負(fù)責(zé)顯示。
下面我們從:區(qū)別、解決了什么關(guān)鍵問(wèn)題、缺點(diǎn)來(lái)再論MVP。

MVC和MVP的區(qū)別?

在MVP中View并不直接使用Model,它們之間的通信是通過(guò)Presenter來(lái)進(jìn)行的,所有的交互都發(fā)生在Presenter內(nèi)部,而在MVC中View會(huì)直接從Model中讀取數(shù)據(jù)而不是通過(guò) Controller。
簡(jiǎn)單一句話來(lái)說(shuō):MVP把View跟Model隔離了。

MVP解決了MVC哪些問(wèn)題?

1.隔離了View和Model,彼此訪問(wèn)都通過(guò)接口,強(qiáng)化了面向接口編程。
2.由于M、V、P三層都隔離了,彼此改變都相對(duì)獨(dú)立,無(wú)需“牽一發(fā),動(dòng)全身”,并且P層可以獨(dú)立重用。
3.單元測(cè)試優(yōu)勢(shì):P層可以模擬處理邏輯。
4.更有利于“先定義(接口),再實(shí)現(xiàn)”(先想好,再動(dòng)手)的做事方式。
5.低耦合的方式,更有利于插件化的開(kāi)發(fā)(固件升級(jí)概念)。
6.(歡迎補(bǔ)充,哈哈)。

MVP缺點(diǎn)

1.寫(xiě)法繁瑣,每個(gè)模塊下的MVP每一層都要開(kāi)放接口
2.致命缺陷,Activity的生命周期會(huì)讓MVP的接口調(diào)用出現(xiàn)泄漏問(wèn)題

小結(jié)

關(guān)于缺點(diǎn)的建議:1.寫(xiě)一個(gè)MVP分層生成插件 2.利用項(xiàng)目基類Activity的生命周期進(jìn)行Presenter的添加與釋放(不優(yōu)化此問(wèn)題你就等著crash吧)


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容