2010-05-16 35 views
24

在MVC和3層或N層架構中開發網站有什麼不同?在MVC和3層或N層架構中開發網站有何不同?

哪一個更好?什麼是優點和缺點?

+0

可能的重複:http://stackoverflow.com/questions/899803/have-i-implemented-an-tier-application-with-mvc-correctly?rq=1,HTTP ://stackoverflow.com/questions/1135056/mvc-application-how-does-mult-tier-architecture-fit-in?rq = 1,http://stackoverflow.com/questions/14451444/mvc-multi-tier -mobile-application – 2013-08-13 12:00:57

回答

13

它們幾乎是一樣的,但是在3層中,頂層(表示層)從不直接與底層(數據持久性)進行通信。

在模型視圖控制器中,理論上模型應該'通知'它已經改變的視圖,以便視圖可以更新。但是,這在大多數Web應用程序中通常不是問題,因爲它們是無狀態的。我不確定是否有着名的PHP MVC體系結構具有與模型直接通信的Views,反之亦然,但如果他們不這樣做,那麼說它們實際上是3層是正確的。

維基說:

乍一看,這三個層次可以 似乎類似於MVC(模型 - 視圖 - 控制器 )的概念;然而, 拓撲他們是不同的。 A 三層 體系結構的基本規則是客戶端從不與 直接通信數據層 ;在三層模式中,所有通訊必須通過 中間件層。從概念上講,三層體系結構是線性的。但是,MVC體系結構爲 三角形:View將控制器的更新發送到 ,模型的控制器更新 以及直接從模型更新 。

來源:Wikipedia: Multitier architecture

+0

在大多數現代MVC框架中,模型從不與視圖進行通信。一切都通過控制器。 – anemaria20 2016-07-02 16:59:31