mvp是什麼
本文已影響1.9W人
本文已影響1.9W人
mvp是什麼,你知道嗎?mvp指的是一種數據讀取能力,還有一種說法是指在遊戲中獲得最高經濟和人頭數的玩家。mvp和mvc是不同的,mvp可以更高效的使用模型,想了解更多mvp是什麼嗎?一起往下看。
mvp是什麼1
MVP
mvp的全稱爲Model-View-Presenter,Model提供數據,View負責顯示,Controller/Presenter負責邏輯的處理。MVP與MVC有着一個重大的區別:在MVP中View並不直接使用Model,它們之間的通信是通過Presenter (MVC中的Controller)來進行的,所有的交互都發生在Presenter內部,而在MVC中View會直接從Model中讀取數據而不是通過 Controller。
MVC和MVP
在MVC裏,View是可以直接訪問Model的!從而,View裏會包含Model信息,不可避免的還要包括一些業務邏輯。 在MVC模型裏,更關注的Model的不變,而同時有多個對Model的不同顯示,及View。所以,在MVC模型裏,Model不依賴於View,但是View是依賴於Model的。不僅如此,因爲有一些業務邏輯在View裏實現了,導致要更改View也是比較困難的,至少那些業務邏輯是無法重用的。
解決MVC問題
在MVP裏,Presenter完全把Model和View進行了分離,主要的程序邏輯在Presenter裏實現。而且,Presenter與具體的View是沒有直接關聯的,而是通過定義好的接口進行交互,從而使得在變更View時候可以保持Presenter的不變,即重用! 不僅如此,我們還可以編寫測試用的View,模擬用戶的各種操作,從而實現對Presenter的測試--而不需要使用自動化的測試工具。 我們甚至可以在Model和View都沒有完成時候,就可以通過編寫Mock Object(即實現了Model和View的接口,但沒有具體的內容的)來測試Presenter的邏輯。 在MVP裏,應用程序的邏輯主要在Presenter來實現,其中的View是很薄的一層。因此就有人提出了Presenter First的設計模式,就是根據User Story來首先設計和開發Presenter。在這個過程中,View是很簡單的,能夠把信息顯示清楚就可以了。在後面,根據需要再隨便更改View,而對Presenter沒有任何的影響了。 如果要實現的UI比較複雜,而且相關的顯示邏輯還跟Model有關係,就可以在View和Presenter之間放置一個Adapter。由這個 Adapter來訪問Model和View,避免兩者之間的關聯。而同時,因爲Adapter實現了View的接口,從而可以保證與Presenter之間接口的'不變。這樣就可以保證View和Presenter之間接口的簡潔,又不失去UI的靈活性。 在MVP模式裏,View只應該有簡單的Set/Get的方法,用戶輸入和設置界面顯示的內容,除此就不應該有更多的內容,絕不容許直接訪問Model--這就是與MVC很大的不同之處。
mvp是什麼2
優點
1、模型與視圖完全分離,我們可以修改視圖而不影響模型
2、可以更高效地使用模型,因爲所有的交互都發生在一個地方——Presenter內部
3、我們可以將一個Presenter用於多個視圖,而不需要改變Presenter的邏輯。這個特性非常的有用,因爲視圖的變化總是比模型的變化頻繁。
4、如果我們把邏輯放在Presenter中,那麼我們就可以脫離用戶接口來測試這些邏輯(單元測試)
缺點
由於對視圖的渲染放在了Presenter中,所以視圖和Presenter的交互會過於頻繁。還有一點需要明白,如果Presenter過多地渲染了視圖,往往會使得它與特定的視圖的聯繫過於緊密。一旦視圖需要變更,那麼Presenter也需要變更了。比如說,原本用來呈現Html的Presenter需要用於呈現Pdf,那麼Presenter很有可能也需要變更。
pg one最新單曲OPPOflow MV曝光 pg one OPPOflow歌詞是什麼
plmm是什麼意思 plmm是什麼梗
Makeup Revolution是什麼牌子 Makeup Revolution桃心腮紅試色
vero moda是哪個國家的 vero moda是什麼價位 vero moda爲什那麼貴
make up for ever是什麼牌子 make up for ever是什麼檔次
LPLIMvsOMG怎麼暫停了?IM暫停原因是什麼?
mvmt手錶是什麼牌子 mvmt手錶什麼檔次
make up for ever怎麼讀 make up for ever翻譯成中文是什麼
makeupforever是哪個國家的 makeupforever什麼檔次
lvmh是lv嗎 lvmh是什麼品牌 lvmh旗下的品牌
看月亮爬上來mv女主角是鄭爽嗎 鄭爽拍張傑mv是真的嗎
APM Monaco是哪國牌子 APM Monaco是什麼材質
puma是什麼牌子怎麼讀?puma是什麼檔次?
求婚大作戰插曲MP3是什麼歌 求婚大作戰插曲MV曝光
mac新款脣釉Love Weapon是什麼顏色 mac新款脣釉Love Weapon試色
make up forever散粉怎麼樣 make up forever散粉專櫃價格
鄧紫棋新歌倒數mv什麼意思 鄧紫棋倒數mv男主是誰
臉上笑嘻嘻心裏mmp是什麼梗 臉上笑嘻嘻心裏mmp是什麼意思
nike air vapormax無鞋帶版發售了嗎 耐克vapormax無鞋帶版多少錢
新賽季NBA年度MVP是誰?魔術強森預言詹皇當選
VeroModa是什麼牌子中文名叫什麼 VeroModa是什麼檔次
Supreme和superme區別是什麼 Supreme還是superme
vero moda是什麼牌子 vero moda是什麼檔次
makeupforever氣墊脣釉400是什麼顏色 makeupforever氣墊脣釉400試色
陳情令mv爲什麼要收費 陳情令主題曲無羈mv什麼時候下架
apm monaco是什麼牌子 apm monaco是奢侈品嗎
puma是什麼牌子多少錢 puma是哪個國家的品牌
nike air vapormax plus是真的嗎?耐克將推出
王者榮耀mvp是什麼意思:教你怎樣獲得全場最佳mvp
adidas harden vol1 mvp哈登最新款什麼時候發售多少錢
vetements是哪個國家的 vetements是什麼品牌
super fly mvp評測 這雙aj對得起mvp三個字
mvp是指什麼 mvp是指什麼意思
champion是什麼牌子 champion是哪個國家的 champion是潮牌嗎
HPV疫苗二價四價九價區別是什麼 HPV疫苗多少錢一針
misbhv是什麼牌子 misbhv是什麼檔次
周杰倫新歌mv是悲劇嗎 周杰倫新歌mv故事結局是什麼
vetements和champion聯名款在哪裏買 vetements和champion聯名款介紹
張藝興最新mv女舞伴叫什麼名字 張藝興最新mv是什麼歌
周杰倫說好不哭MV彩蛋是什麼 周杰倫說好不哭MV講的是什麼
2018nba常規賽mvp是誰
puma的logo是什麼動物 puma的標誌是什麼豹
venus marble是什麼牌子 venus marble是哪個國家的什麼檔次