通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層。區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。曾把MVC模式和Web開(kāi)發(fā)中的三層結(jié)構(gòu)的概念混為一談,直到今天才發(fā)現(xiàn)一直是我的理解錯(cuò)誤。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。
三層架構(gòu)和mvc模式有什么關(guān)系
三層架構(gòu)和MVC有明顯的區(qū)別。MVC應(yīng)該是呈現(xiàn)方式(三層架構(gòu)中只有UI層可以加起來(lái))。三層架構(gòu)(3-tier)一般是指將整個(gè)業(yè)務(wù)應(yīng)用分為表示層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問(wèn)層(DAL)。差異化的目的是“高內(nèi)聚低耦合”的思想。1.表示層(UI)是呈現(xiàn)給用戶的界面,也就是用戶在使用系統(tǒng)時(shí)看到的和得到的。2.業(yè)務(wù)邏輯層(BLL)針對(duì)具體問(wèn)題的操作,也可以說(shuō)是數(shù)據(jù)層的操作,數(shù)據(jù)業(yè)務(wù)的邏輯處理。3.數(shù)據(jù)訪問(wèn)層。這一層的事務(wù)直接操作數(shù)據(jù)庫(kù),目的是添加、刪除、修改、更新和搜索數(shù)據(jù)。是的,嚴(yán)格來(lái)說(shuō),三層架構(gòu)中的UI層是三層加起來(lái)之后才出現(xiàn)的。也就是說(shuō),MVC將三層架構(gòu)中的UI層分為控制器、視圖和實(shí)體三個(gè)部分??刂破魍瓿身?yè)面邏輯,通過(guò)實(shí)體與接口層通信,C層直接與三層中的BLL對(duì)話。Mvc可以是三層當(dāng)中的表示層框架,屬于表示層。三層和mvc可以共存。第三層基于業(yè)務(wù)邏輯劃分,mvc基于頁(yè)面劃分。MVC主要用于表示層,三層主要用于架構(gòu)。三層一般是表示層、中間層、數(shù)據(jù)層,表示層又可分為M、V、c,(視圖)模型-視圖-控制器曾經(jīng)在Web開(kāi)發(fā)中混淆了MVC模式和三層結(jié)構(gòu)的概念,但直到今天都是我的誤解。MVC模式是GUI界面開(kāi)發(fā)的指導(dǎo)模式。基于表示層分離的思想,將程序分為模型-視圖-三個(gè)部分,采用三角形結(jié)構(gòu)。模型指的是數(shù)據(jù)和應(yīng)用邏輯,視圖指的是模型的視圖,也就是用戶界面。兩者都很好理解,重點(diǎn)在于各自的角色以及相互之間的關(guān)系。在MVC模式下,視圖和視圖屬于表示層,通常成對(duì)出現(xiàn)。設(shè)計(jì)用于處理用戶交互的邏輯。一個(gè)常見(jiàn)的誤解是,它負(fù)責(zé)處理視圖和模型之間的交互,但實(shí)際上,視圖和模型可以直接通信。因?yàn)橛脩艚换ネǔI婕澳P偷母淖兒鸵晥D的更新,這些都可以認(rèn)為是副作用。MVC是表示層的架構(gòu),MVC的模型其實(shí)就是視圖要展示的數(shù)據(jù)。它不包含業(yè)務(wù)邏輯或數(shù)據(jù)讀取。在N層架構(gòu)中,通常有一個(gè)模型層,用來(lái)對(duì)應(yīng)數(shù)據(jù)庫(kù)的表,也就是O in ORM。這個(gè)模型可能是POCO,也可能是包含一些驗(yàn)證邏輯的實(shí)體類(lèi),一般不包含數(shù)據(jù)讀取。讀取數(shù)據(jù)的是數(shù)據(jù)訪問(wèn)層。MVC作為UI層,一般不直接操作數(shù)據(jù)訪問(wèn)層,但是中間有一個(gè)業(yè)務(wù)邏輯層,封裝業(yè)務(wù)邏輯,調(diào)用數(shù)據(jù)訪問(wèn)層。UI層()通過(guò)業(yè)務(wù)邏輯層獲取數(shù)據(jù)(模型),封裝(),然后選擇對(duì)應(yīng)的視圖。MVC原本存在于程序中,M是指數(shù)據(jù)模型,V是指用戶界面,C是控制器。使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分開(kāi),讓同一個(gè)程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計(jì)數(shù)據(jù)可以分別用柱狀圖和餅狀圖來(lái)表示。C的目的是保證M和V的同步,一旦M發(fā)生變化,V也要同步更新。MVC的工作原理MVC是一種設(shè)計(jì)模式,它強(qiáng)制要求將應(yīng)用程序的輸入、處理和輸出分離開(kāi)來(lái)。使用MVC的應(yīng)用程序分為三個(gè)核心組件:模型、視圖和控制器。他們各自處理自己的任務(wù)。V view是用戶可以看到并與之交互的界面。對(duì)于舊的Web應(yīng)用程序,視圖是由HTML元素組成的界面。在新的Web應(yīng)用中,HTML仍然在視圖中扮演著重要的角色,但一些新技術(shù)也層出不窮,包括Flash,一些標(biāo)記語(yǔ)言,如XHTML,XML/XSL,WML和Web。如何處理應(yīng)用程序接口變得越來(lái)越具有挑戰(zhàn)性。MVC的一個(gè)很大的優(yōu)點(diǎn)是它可以為你的應(yīng)用程序處理許多不同的視圖。事實(shí)上,視圖中沒(méi)有真正的處理,無(wú)論數(shù)據(jù)是在線存儲(chǔ)還是員工列表。作為視圖,它只是一種輸出數(shù)據(jù)并允許用戶操作數(shù)據(jù)的方式。型號(hào)M型號(hào)repr