MVC 即 Model View Controller 。mvc是一種很好的設計模式的綜合應用。其中
M 即Model(模型層),主要負責處理業務邏輯以及與數據庫的交互。
V 即View(視圖層),主要用于顯示數據和提交數據。
C 即Controller(控制器),主要用于接受請求并控制請求轉發。
三層架構,是最基本的項目分層結果。秉承“高內聚,低耦合”的思想,將整個業務應用劃分為:UI層(表示層)、BLL(業務邏輯層)、DAL層(數據訪問層)。系統的主要功能和業務邏輯在BLL層進行處理。
UI:表示層,也叫做用戶界面層,用來接受用戶的請求,以及數據返回。。可以是WEB、也可以是WinForm。
BLL:業務邏輯層,主要負責對數據層的操作,對數據業務邏輯的處理。
DAL:數據訪問層,直接操作數據庫,包括增、刪、改、查、備份、還原等操作。
從二者的區別,我沒有在網上找到一個定論,主要觀點以下有幾個:
① MVC是一種復合設計模式,而三層是一個軟件架構。
軟件架構是用接口來實現的,而設計模式則是一種設計思想、設計理念的升華,也可以算做一種解決方案。一個系統一般只有一個軟件架構,而可以有多個設計模式,因為設計模式是可以復用的。
② 在三層架構中沒有定義Controller的概念,而MVC中也沒有將業務的邏輯訪問看成兩個層。當然了。在三層中也提到了Model,但是三層架構中Model(Entry)的概念與MVC中Model的概念是不一樣的,“三層”中典型的Model層是以實體類構成的,而MVC里,則是由業務邏輯與訪問數據組成的。??
③三層結構模式又可歸于部署模式,MVC可歸于表示模式。
④三層架構劃分為:View(UI)、BIZ(BLL)、ADO(DAL)、Entity(Model)、Controller。而MVC把 BIZ(BLL)、ADO(DAL)、Model(Entity) 統一稱之為 模型(MODEL),得到:View、Controller、模型(MODEL) 三層。
??????我認為,二者并不是互斥的,相反,MVC和多層應用軟件結構有著異曲同工之妙,而且可以相互結合進行開發。MVC中的每一個環節都可以采用多層應用軟件結構進行設計。而多層應用軟件中的每一層又可以采取MVC來進行設計。所以說?可以是:M層對應于BLL和DAL。V對應于UI,而C則對應于層與層之間的聯系。也可以M對應于DAL,C對應于BLL,而V仍然對應于UI。?