MVC思想及其優(yōu)勢(shì)


?MVC并不是Java語言所特有的設(shè)計(jì)思想,也并不是Web應(yīng)用所特有的思想翰萨,它是所有面向?qū)ο蟪绦蛟O(shè)計(jì)語言都應(yīng)該遵循的規(guī)范脏答。
MVC思想將一個(gè)應(yīng)用分成三個(gè)基本部分:Model(模型)、View(視圖)和Controller(控制器),這三個(gè)部分以最少的耦合協(xié)同工作亩鬼,從而提高應(yīng)用的可擴(kuò)展性和可維護(hù)性殖告。
?在經(jīng)典的MVC模式中,事件由控制器處理雳锋,控制器根據(jù)事件的類型改變模型或視圖黄绩,反之亦然。玷过。具體地說宝与,每個(gè)模型對(duì)應(yīng)一系列的視圖列表買這種對(duì)應(yīng)關(guān)系通常采用注冊(cè)來完成,即把多個(gè)視圖注冊(cè)到同一個(gè)模型冶匹,當(dāng)模型發(fā)生改變時(shí),模型向所有注冊(cè)過的視圖發(fā)送通知咆瘟,接下來嚼隘,視圖從對(duì)應(yīng)的模型中獲得信息,然后完成對(duì)視圖顯示的更新袒餐。
?概括起來飞蛹,MVC有如下特點(diǎn):

  • 多個(gè)視圖可以對(duì)應(yīng)一個(gè)模型。按MVC設(shè)計(jì)模型灸眼,一個(gè)模型對(duì)應(yīng)多個(gè)視圖卧檐,可以減少代碼的復(fù)制及代碼的維護(hù)量,這樣焰宣,一旦模型發(fā)生改變霉囚,也易于維護(hù)。
  • 模型返回的數(shù)據(jù)與顯示邏輯分離匕积。模型數(shù)據(jù)可以應(yīng)用任何的顯示技術(shù)盈罐,例如榜跌,使用JSP頁面、Velocity模板或者直接產(chǎn)生Excel文檔等盅粪。
  • 應(yīng)用被分隔為三層钓葫,降低了各層之間的耦合,提供了應(yīng)用的可擴(kuò)展性票顾。
  • 控制層的概念也很有效础浮,由于它把不同的模型和視圖組合在一起,完成不同的請(qǐng)求奠骄。因此豆同,控制層可以說包含了用戶請(qǐng)求權(quán)限的概念。
  • MVC更符合軟件工程化管理的精神戚揭。不同層各司其職诱告,每一層的組件具有相同的特征,這有利于通過工程化和工具化的方法產(chǎn)生管理程序的代碼

?相對(duì)于早期的MVC思想民晒,Web模式下的MVC思想則有存在一些變化精居。對(duì)于一個(gè)普通的應(yīng)用程序,可以將視圖注冊(cè)給模型潜必,當(dāng)模型數(shù)據(jù)發(fā)生改變時(shí)靴姿,即時(shí)通知視圖頁面發(fā)送改變;而對(duì)于Web應(yīng)用磁滚,即使將多個(gè)JSP頁面注冊(cè)給一個(gè)模型佛吓,但當(dāng)該模型發(fā)生變化時(shí),模型也無法主動(dòng)給JSP頁面發(fā)送信息(因?yàn)閃eb應(yīng)用都是基于請(qǐng)求/響應(yīng)模式的)垂攘,只有當(dāng)用戶請(qǐng)求瀏覽該頁面時(shí)维雇,控制器才負(fù)責(zé)調(diào)用模型數(shù)據(jù)來更新JSP頁面。下圖顯示了遵循MVC模式的Java Web的運(yùn)行流程晒他。


遵循MVC的Java Web運(yùn)行流程.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吱型,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子陨仅,更是在濱河造成了極大的恐慌津滞,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灼伤,死亡現(xiàn)場(chǎng)離奇詭異触徐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)狐赡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門撞鹉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事孔祸÷「遥” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵崔慧,是天一觀的道長拂蝎。 經(jīng)常有香客問我,道長惶室,這世上最難降的妖魔是什么温自? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮皇钞,結(jié)果婚禮上悼泌,老公的妹妹穿的比我還像新娘。我一直安慰自己夹界,他們只是感情好馆里,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著可柿,像睡著了一般鸠踪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上复斥,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天营密,我揣著相機(jī)與錄音,去河邊找鬼目锭。 笑死评汰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的痢虹。 我是一名探鬼主播被去,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼奖唯!你這毒婦竟也來了编振?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤臭埋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后臀玄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓢阴,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年健无,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了荣恐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖叠穆,靈堂內(nèi)的尸體忽然破棺而出少漆,到底是詐尸還是另有隱情,我是刑警寧澤硼被,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布示损,位于F島的核電站,受9級(jí)特大地震影響嚷硫,放射性物質(zhì)發(fā)生泄漏检访。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一仔掸、第九天 我趴在偏房一處隱蔽的房頂上張望脆贵。 院中可真熱鬧,春花似錦起暮、人聲如沸卖氨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筒捺。三九已至,卻和暖如春密似,著一層夾襖步出監(jiān)牢的瞬間焙矛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工残腌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留村斟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓抛猫,卻偏偏與公主長得像蟆盹,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子闺金,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361