永久免费看黄A片无码软件,japanese 在线观看国产,强奷高H猛烈失禁潮喷播放,亚洲成精品自拍

rexian

咨詢電話:023-6276-4481

熱門文章

聯(lián)系方式

電 話:023-6276-4481

郵箱:broiling@qq.com

地址:重慶市南岸區(qū)亞太商谷6幢25-2

當(dāng)前位置:網(wǎng)站首頁 > 技術(shù)文章 > 三層架構(gòu)與MVC的相似和不同

三層架構(gòu)與MVC的相似和不同

編輯:pansiqin 發(fā)表時間:2017-12-13 13:55:26
pansiqin

作者:劉彥彬
鏈接:https://www.zhihu.com/question/21851341/answer/251629127
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

MVC 模式

產(chǎn)生背景:
對用戶界面進(jìn)行管理的程序的職責(zé)混亂導(dǎo)致代碼難以維護(hù)。

解決方案:
將對數(shù)據(jù)的操作 M 與對視圖V的操作分離開,用C 邏輯作為二者的粘合劑。

3-tiers 架構(gòu)

產(chǎn)生背景:
所有應(yīng)用程序都是用來處理數(shù)據(jù)的,程序的入口數(shù)據(jù)可以通過接口交互式輸入或者從磁盤等地方讀取,程序的輸出結(jié)果作為現(xiàn)實或存儲在磁盤上。上世紀(jì)九十年代之前,除了大型的系統(tǒng)外,應(yīng)用程序讀取處理并存儲數(shù)據(jù)都是在一臺機(jī)器上進(jìn)行的。但是,從九十年代起,由于數(shù)據(jù)的爆炸性增長,一臺機(jī)器上可以存儲的數(shù)據(jù)不能滿足應(yīng)用程序的需求。于是,人們對原有程序進(jìn)行了水平分層,將數(shù)據(jù)分離到數(shù)據(jù)庫服務(wù)器上,應(yīng)用程序從網(wǎng)絡(luò)上讀取數(shù)據(jù)。這就是 2-tiers 架構(gòu),客戶端應(yīng)用程序和數(shù)據(jù)庫服務(wù)器。這種架構(gòu)依然存在一些缺點,例如,無法緩解支持很多應(yīng)用程序的客戶端的負(fù)載; 客戶端越來越復(fù)雜;  客戶端和服務(wù)器之間頻繁的通信對帶寬要求高,限制了網(wǎng)絡(luò)的大小等。
總的來說就是,由于原有業(yè)務(wù)的復(fù)雜度提升,客戶端和服務(wù)器端的職能需要調(diào)整,從而實現(xiàn)負(fù)載均衡,使系統(tǒng)具有良好的伸縮性。

解決方案:
客戶端的應(yīng)用程序用于展示,是展示層,業(yè)務(wù)層進(jìn)行邏輯運算的支持,數(shù)據(jù)層存儲和操作數(shù)據(jù)。由于這種架構(gòu)對原有程序進(jìn)行了分層,不同的層運行在不同的機(jī)器上,所以可以非常自然地支持分布式開發(fā)。

聯(lián)系:
- 初看起來比較像,容易搞混(如果這也算聯(lián)系的話);

-  MVC 模式可以用于3-tiers 架構(gòu)的展示層。

區(qū)別:
關(guān)注的重點不同:
MVC 關(guān)注的重點在于表現(xiàn)層的代碼組織方式,通過降低代碼間的耦合度,使代碼更改維護(hù)。
3-tires 關(guān)注系統(tǒng)的分布,便于提升系統(tǒng)性能,增加系統(tǒng)功能。

拓?fù)浣Y(jié)構(gòu)不同:
MVC 是可以三角結(jié)構(gòu),視圖向控制器發(fā)送更新,控制器更新模型,視圖可以直接從模型更新。
3-tires 一定是是線性結(jié)構(gòu),展示層即客戶端不能直接與數(shù)據(jù)層通信,也就是說客戶端展示層與數(shù)據(jù)層的通信必須經(jīng)過中間層即業(yè)務(wù)層。