服務(wù)熱線
153 8323 9821
首先說三層架構(gòu):
UI(.aspx)---------> BLL(業(yè)務(wù)處理)------> DAL(數(shù)據(jù)處理)----> 永久存儲(chǔ)(數(shù)據(jù)庫)
MVC:MVC(Model View Controller)模型-視圖-控制器
很明顯都是從整體上“策劃”一個(gè)web項(xiàng)目的實(shí)現(xiàn)邏輯
共同點(diǎn):三層架構(gòu)的UI層相當(dāng)于MVC中的View層,作為視圖,再說白一點(diǎn),都是頁面
區(qū)別:BLL+DAL相當(dāng)于MVC中的Model層,Model層實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,當(dāng)然也包含了數(shù)據(jù)訪問的邏輯
三層”中典型的Model層是已實(shí)體類構(gòu)成的,而MVC里,Model則是由業(yè)務(wù)邏輯與訪問數(shù)據(jù)組成的,
Model層又分為不同的層(個(gè)人認(rèn)為就是三層架構(gòu)的DAL+BLL),它的分層也是為了結(jié)構(gòu)清晰和低耦合,(高內(nèi)聚:單一責(zé)任;低耦合:模塊獨(dú)立)
區(qū)別比較大的就是三層架構(gòu)中沒有Control層,而是由單個(gè)頁面上的控件的事件處理頁面與業(yè)務(wù)邏輯之間,而MVC中control層是作為聯(lián)系視圖層和Model的紐帶,使得整個(gè)項(xiàng)目的結(jié)構(gòu)更加清晰,降低了耦合性。
舉例說明這兩種方法不同的實(shí)現(xiàn)思路:A在上海的浦東區(qū)逛街,有人要搶劫他,打110報(bào)警了,B在閔行區(qū)也被劫持,他也打110報(bào)警了,他們打110的時(shí)候,接電話的是上海市公安局總部指揮中心,對于A,來解救他是浦東分局的警察,對于B,解救他的是閔行分局的警察,對于AB來說,他們不需要關(guān)心到底是誰來解救他的,他們只管打110報(bào)警(類似于頁面數(shù)據(jù)由action提交到控制器),由110指揮中心確定他的位置然后派出具體的地方警局去營救(控制器根據(jù)需求調(diào)用model層去完成對應(yīng)的數(shù)據(jù)處理)。而三層架構(gòu)在這個(gè)過程中就像A或B被劫持了,他們直接找到當(dāng)?shù)鼐ㄕ{(diào)用BLL層方法)的警察來處理.
三層是垂直依賴的 而MVC是松耦合的 三層沒有設(shè)計(jì)模式基礎(chǔ)一般也能整體把握 MVC的話必須有設(shè)計(jì)模式基礎(chǔ)才能比較好的全局掌握,但是如果是只做Controller/Views的一部分的話就不用那么多,這樣便于分離 三層結(jié)構(gòu)清晰 MVC使用得當(dāng)易于復(fù)用,而且開發(fā)速度很快