国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

對 MVC 和 MVP 模式的疑惑
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-05-16 17:06:38
0
3
604

最近在看了一篇關(guān)于 MVP 的文章,挺簡單的,就是介紹了什么是MVP模式。

但是對于 MVC 和 MVP 的區(qū)別真沒有搞得很清楚。 看后的感覺就是「MVP 只是規(guī)范更嚴(yán)格的 MVC 而已」。

MVP 中的 Presenter 到底充當(dāng)著一個什么角色呢?

我查了一些關(guān)于 MVP 的資料。都說 Presenter 相對于 MVC 中的 Controller 來說,還多了一個將 Model 和 View 充分剝離的作用。但是其實(shí)在我的概念里(在平時的應(yīng)用中),MVC 中的 Model 和 View 是可以做到剝離的。我在平常的開發(fā)中,都會把 Model 中提供的數(shù)據(jù)在 Controller 中處理之后再渲染到頁面的。也就是說,其實(shí)很多時候 MVC 已經(jīng)可以做到 V 和 M 的分離了。那么,提出 MVP 模式的目的或者說要點(diǎn)何在呢?

希望大家能給一下自己的看法,謝謝!

PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證高級PHP講師

全部回復(fù)(3)
世界只因有你

我深信 沒有不好的問題,只有不好的回答。


起初,只有命令行。

軟件工程師的靈就運(yùn)行在 shell 上。

Xerox 說:「要有 GUI」……

一、桌面軟件的 MVC

感謝 Smalltalk。感謝 GUI。

二、B/S 架構(gòu)的 MVC

后來,互聯(lián)網(wǎng)興起,于是程序員把自己的程序放到服務(wù)器上運(yùn)行,此時 GUI 發(fā)生了變化。所有的界面的現(xiàn)實(shí) (View層)換成了瀏覽器(HTML)。

此時,MVC 被帶到了 BS 架構(gòu)。感謝 sun。感謝 struts。

三、前端的 MVP

再后來,瀏覽器越來越強(qiáng)悍,于是很多的業(yè)務(wù)放到了瀏覽器里面來執(zhí)行。

于是程序員們把 MVC 帶到了 View 層。但是用 HTML+CSS+JS 做顯示層,和傳統(tǒng)的桌面 GUI 又有很大區(qū)別。 于是,為了充分發(fā)揮 js 語言的特點(diǎn),MVP 就出現(xiàn)了。

為情所困

Comparison of Architecture presentation patterns MVP(SC),MVP(PV),PM,MVVM and MVC

[翻譯] MVP(SC),MVP(PV),PM,MVVM 和 MVC 表現(xiàn)模式架構(gòu)對比

黃舟

架構(gòu)的演進(jìn):

MVC模式:
View <-> Controller <-> Model;Controller不僅負(fù)責(zé)路由,而且同時負(fù)責(zé)業(yè)務(wù)層與表現(xiàn)層的銜接,在開發(fā)的時候可以靈活在控制器中配置的功能。在開發(fā)時不如MVP直觀,關(guān)注點(diǎn)也沒的MVP中更簡潔。

MVP模式:
View <-> Presenter(Controller <-> Events) <--> Model;Presenter隱藏了路由,控制器部分,使開發(fā)無需關(guān)心消息的路由與控制層,精力放到每個消息引發(fā)的事件中,在事件中進(jìn)行業(yè)務(wù)操作。使得開發(fā)更簡單直觀,但是犧牲了對控制器層操作的靈活性。

MVVM模式:
View <-> ViewModel <-> Model;ViewModel不僅可以充當(dāng)MVP中Presenter的功能,同時ViewModel可以主動更新View。而不是單一的由View觸發(fā)后臺更新??梢赃@么說MVVM就是MVP的增強(qiáng)版本

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板