mvp架構(gòu)模式 如何看待android mvp設(shè)計(jì)模式的優(yōu)缺點(diǎn)?
如何看待android mvp設(shè)計(jì)模式的優(yōu)缺點(diǎn)?MVP,全稱 Model-View-Presenter 。MVP模式是MVC模式的改良。在上個(gè)世紀(jì)90年代,IBM旗下的子公司Taligent在用C/C
如何看待android mvp設(shè)計(jì)模式的優(yōu)缺點(diǎn)?
MVP,全稱 Model-View-Presenter 。
MVP模式是MVC模式的改良。在上個(gè)世紀(jì)90年代,IBM旗下的子公司Taligent在用C/C 開發(fā)一個(gè)叫CommonPoint的圖形界面應(yīng)用系統(tǒng)的時(shí)候提出來(lái)的。
在MVP模式里通常包含4個(gè)要素:
(1) View :負(fù)責(zé)繪制UI元素、與用戶進(jìn)行交互(在Android中體現(xiàn)為Activity)
(2) View interface :需要View實(shí)現(xiàn)的接口,View通過View interface與Presenter進(jìn)行交互,降低耦合,方便進(jìn)行單元測(cè)試
(3) Model :負(fù)責(zé)存儲(chǔ)、檢索、操縱數(shù)據(jù)(有時(shí)也實(shí)現(xiàn)一個(gè)Model interface用來(lái)降低耦合)
(4) Presenter :作為View與Model交互的中間紐帶,處理與用戶交互的負(fù)責(zé)邏輯。
優(yōu)點(diǎn):
1、降低耦合度,實(shí)現(xiàn)model和view的分離,可以修改view而不影響m層。
2、模塊職責(zé)劃分明確,層次清晰。
3、presenter可以復(fù)用。
4、利于進(jìn)行單元測(cè)試。
5、view可以進(jìn)行組件化。
缺點(diǎn):
1、presenter中除了邏輯,還有大量的view ->model, model ->view的手動(dòng)同步邏輯,使得presenter笨重,維護(hù)困難。
2、試圖和presenter交互過于頻繁。
3、presenter過多的渲染視圖,會(huì)讓他們聯(lián)系更緊密。
4、額外的代碼量和學(xué)習(xí)成本。
所以,如果是小項(xiàng)目工程,沒有必要使用mvp,如果為了以后更好的架構(gòu),建議學(xué)習(xí)之后,再重構(gòu)。
Android程序員要有幾年的開發(fā)經(jīng)驗(yàn)和什么程度的技術(shù),可以達(dá)到年薪50W呢?
打工50w基本不可能吧,如果進(jìn)入BAT有股權(quán)的話大概是可以,但是很多坑都被占完了,過去也就是高級(jí)搬磚人員,很難,很難,建議自己開發(fā)一套軟件自己來(lái)運(yùn)營(yíng)還是有點(diǎn)機(jī)會(huì)。
mvp模式和mvc的區(qū)別?
MVC(Model View Controller)是軟件工程中的一種軟件架構(gòu)模式,它把軟件系統(tǒng)分為模型、視圖和控制器三個(gè)基本部分。用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯。
MVP 全稱:Model-View-Presenter ;MVP 是MVC演變而來(lái),但MVP和MVC有著重大的區(qū)別:在MVP中View并不直接使用Model,它們之間的通信是通過Presenter (MVC中的Controller)來(lái)進(jìn)行的,所有的交互都發(fā)生在Presenter內(nèi)部,而在MVC中View會(huì)直接從Model中讀取數(shù)據(jù)而不是通過 Controller。
在MVC里,View是可以直接訪問Model的!從而,View里會(huì)包含Model信息,不可避免的還要包括一些業(yè)務(wù)邏輯。 在MVC模型里,更關(guān)注的Model的改變,而同時(shí)有多個(gè)對(duì)Model的不同顯示,即View。所以,在MVC模型里,Model不依賴于View,但是View是依賴于Model的