2012-09-10 76 views
-1

我還沒有真正能夠區分標題中提到的模式。是一個網站MVC MVP或MVVM?

一個動態網站的用戶界面基本上用HTML,CSS和JavaScript開發(至少,這是用戶看到的)。後端可以是連接到數據庫的PHP或ASP(或其他)。

我相信數據庫是模型,UI是視圖。後端是控制器,演示者還是視圖模型?

我會欣賞一個解釋性的答案,如有必要,鏈接。

+1

檢查這些,因爲它們幾乎是你問的問題http://stackoverflow.com/questions/1298428/mvc-mvp-mvvm-what-the-heck?rq=1和http://stackoverflow.com/questions/2105121/what-to-use-mvc-mvp-or-mvvm-or?rq = 1 – user1477388

+1

相關:http://stackoverflow.com/q/11877575/727208 –

+0

可能的重複[MVC和MVVM?](http://stackoverflow.com/questions/667781/what-is-the-difference-between-mvc-and-mvvm) –

回答

5

您無法確定哪些設計模式已被用於應用程序而無需訪問源代碼。我對廣告有一定的印象,這就是你所要求的。

而且你似乎是關於有點困惑什麼是MVC和MVC風格的設計圖案的部分:

  • 型號是不是數據庫。它是應用程序的一個層(不是類或對象),它包含所有域業務邏輯並與至少一個數據源(可能是也可能不是數據庫)進行交互。
  • UI由表示層維護,表示層主要由視圖和類似控制器的結構組成(大部分)。
0

此微軟msdn文章WPF Apps With The Model-View-ViewModel Design Pattern描述了MVVM作爲Martin Fowler的Presentation Model模式的微軟定製。他的Passive View模式是MVP方法。他的Supervising Controller模式是MVC方法。這older article需要關於這種模式的演變。並非所有的語言和框架都對GUI模式有很好的支持。例如,MVVM是由微軟發明的桌面編程。網頁通常具有整頁刷新,而不是事件驅動的「桌面」編程模型。有爭議的是,試圖將桌面模式縮減爲網頁編程模型會將它們扭曲到無法識別的地步。

具有事件驅動編程模型的現代Web框架是ZK。這篇文章Implementing event-driven GUI patterns using the ZK Java AJAX framework概述了使用上述三種Martin Fowler模式編寫相同的簡單屏幕三次。所有內容都轉換爲瀏覽器的html和javascript,但實際的應用程序屏幕代碼正在服務器端事件驅動的「桌面」上運行。什麼是MVC/MVP/MVVM模式的視圖,模型和第三部分在本演示文稿Design Patterns in ZK: Java MVVM as Model-View-Binder中討論。