對 MVC 和 MVP 模式的疑惑
PHP中文网
PHP中文网 2017-05-16 17:06:38
0
3
493

最近在看了一篇關於 MVP 的文章,蠻簡單的,就是介紹了什麼是MVP模式。

但是對於 MVC 和 MVP 的差異真沒有搞得很清楚。 看後的感覺就是「MVP 只是規範更嚴格的 MVC 而已」。

MVP 中的 Presenter 到底扮演著一個什麼角色呢?

我查了一些關於 MVP 的資料。都說 Presenter 相對於 MVC 中的 Controller 來說,還多了一個將 Model 和 View 充分剝離的功能。但其實在我的概念裡(在平時的應用中),MVC 中的 Model 和 View 是可以做到剝離的。我平常的開發中,都會把 Model 中提供的資料在 Controller 處理完後再渲染到頁面的。也就是說,其實很多時候 MVC 已經可以做到 V 和 M 的分離了。那麼,提出 MVP 模式的目的或說要點何在呢?

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

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
世界只因有你

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


起初,只有命令列。

軟體工程師的靈就運作在 shell 上。

Xerox 說:「要有 GUI」…

一、桌面軟體的 MVC

感謝 Smalltalk。感謝 GUI。

二、B/S 架構的 MVC

後來,網路興起,於是程式設計師把自己的程式放到伺服器上運行,此時 GUI 發生了變化。所有的介面的現實 (View層)換成了瀏覽器(HTML)。

此時,MVC 被帶到了 BS 架構。感謝 sun。感謝 struts。

三、前端的 MVP

再後來,瀏覽器越來越強悍,於是很多的業務放到了瀏覽器裡面來執行。

於是程式設計師把 MVC 帶到了 View 層。但用 HTML+CSS+JS 做顯示層,和傳統的桌面 GUI 又有很大差別。 於是,為了充分發揮 js 語言的特點,MVP 就出現了。

为情所困

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

[翻譯] MVP(SC),MVP(PV),PM,MVVM 與 MVC 表現模式架構比較

黄舟

架構的演進:

MVC模式:
View Controller Model;Controller不僅負責路由,而且同時負責業務層與表現層的銜接,在開發的時候可以靈活在控制器中配置的功能。在開發時不如MVP直觀,關注點也沒的MVP中更簡潔。

MVP模式:
View Presenter(Controller Events) Model;Presenter隱藏了路由,控制器部分,使開發無需關心訊息的路由與控制層,精力放到每個訊息引發的事件中,在事件中進行業務操作。使得開發更簡單直觀,但是犧牲了對控制器層操作的彈性。

MVVM模式:
View ViewModel Model;ViewModel不僅可以作為MVP中Presenter的功能,同時ViewModel可以主動更新View。而不是單一的由View觸發後台更新。可以這麼說MVVM就是MVP的增強版

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!