首頁  >  文章  >  後端開發  >  淺談MVC與三層架構

淺談MVC與三層架構

黄舟
黄舟原創
2017-02-23 10:10:053254瀏覽

  首先為大家引入下MVC的概念:

  MVC(Model View Controller)模型、視圖以及控制器,它是一種較廣泛應用的結構設計模式。

  模型:就是在MVC設計模式中需要被顯示的資料。在通常情況下,該模型需要從資料庫讀取資料、保存模型的狀態等,提供資料的存取方法以及資料的維護。

  視圖:就是用來顯示模型中資料的使用者介面,一般來書,視圖就是HTML頁面。

  控制器:就是用來處理對使用者的輸入或互動指令,以便改變模型的狀態,選擇適當的視圖來顯示對應的模型資料。

  工作機制如右圖所示:

#  (1)使用者向控制器發出請求。

  (2)控制器收到使用者請求後,向模型請求取得相關的資料。

  (3)模型將對應的資料回傳給控制器。

  (4)控制器將相關資料傳送到指定的視圖。

  (5)檢視將資料呈現給使用者。

  透過上面的介紹相信大家對於MVC也有了一定的了解與認識,那麼MVC與原先我們學習過的三層架構到底有哪些相同點,又有哪些不同之處呢?

  MVC與三層的共同點:

#  MVC與三層架構的觸發點事相同的-分層,解耦。它們都做到了顯示與數據的分離,大大降低了系統的耦合性。

  但從專業角度來說MVC與三層沒有任何關係,三層是三層,MVC是MVC。唯一能把他們連結在一起的就是「三」這個字了,不過從初學者的角度把二者放在一起區分起來學習也更容易理解。

  MVC與三層的不同點:

#  可以說它們之間除了相同的剩下的全是不同點。它們有著各自的工作機制詳情請見下圖:

  

  三層中的UI在MVC中被分解為View和Controller,BLL和DAL合併為Model。另外在三層中雖然叫做三層架構,但是我們可以依需求分成多層。三層中也涉及Model,但是三層裡面的Model跟MVC中的Model完全是兩回事,三層中的Model是表實體,而MVC中的Model中包含業務邏輯和資料存取。

  MVC對於Web Form的特性:

 (1)單元測試

## ( 2)容易實作測試驅動開發

  (3)易於擴充與取代

 (4)支援Web Form中的相關特性

  (5)URL被對應到控制器

#  雖然MVC對於Web Form有一些新的特性,但MVC並不能取代傳統的Web Form技術,這兩種技術只是應用在不同場景,有不同的優、缺點。不能片面的說那種技術高那種技術低,開發者需要依照自己的實際狀況選擇對應的技術開發專案。以上是個人透過查閱相關資料對MVC於三層架構之間的一些認識,有不足之處,請大家批評指正。

 以上就是淺談MVC與三層架構的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn