我自己對于mvp模式的理解

這里僅僅記錄自己對于mvp模式的理解

mvp是從mvc演化而來的,想了解mvp就先必須了解mvc

mvc是什么, v view ?m ?model ? c controller

他們?nèi)叩年P(guān)系是什么樣的呢,

view ?即 視圖 ,負責用戶的輸入,和界面的顯示 ,需要數(shù)據(jù)是直接從model中拉取數(shù)據(jù)

model ?數(shù)據(jù) (網(wǎng)絡上或者本地數(shù)據(jù)) ?獲取數(shù)據(jù)后處理后顯示在界面上,當數(shù)據(jù)發(fā)生變化時 ?直接通知view更新數(shù)據(jù)

controller ?負責view輸入的信息后調(diào)用model的數(shù)據(jù) 呈現(xiàn)在界面上給用戶顯示 ?

在這里view和model是有直接的聯(lián)系的,耦合性高 下面我畫張圖來說明mvc的關(guān)系



可以看到model和view是有直接聯(lián)系的,這樣子不方便測試,后期維護也很麻煩,所以演化出了mvp

mvp和mvc的區(qū)別就是model和view不再有直接的聯(lián)系,所有的溝通都通過presenter來進行,他們?nèi)叩年P(guān)系如下圖所示

可以看到model和view是沒有直接的聯(lián)系了,完全通過presenter來操作,model是三者里面獨立性最高的,可以方便做單元測試,

我本人還在熟悉mvp模式,所以說的不是很深刻.? 我們只要理解各司其職,該誰完成的就誰做,不要混亂在一起,即便不用mvp整個項目結(jié)構(gòu)也是跟清晰的,生搬硬套的話還是混論的,先理解在運用, 網(wǎng)絡請求 數(shù)據(jù)處理 界面顯示? 應放在那里.


推薦一篇文章 ? ?個人認為寫的不錯http://www.lxweimin.com/p/50c7124f408e

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容