MVC是模型(Model)、視圖(View)和控制(Controller)三個單詞的第一個字母酥泛,是一種目前廣泛流行應(yīng)用模型杨幼。它的目的是實現(xiàn)Web系統(tǒng)的職能分工,將輸入恢口,處理和輸出分開孝宗。下圖是MVC模型關(guān)系圖。
- 模型層實現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯弧蝇;
- 視圖層則用于與用戶交互;
- 控制層是模型與視圖之間溝通的橋梁碳褒。
1、模型層(業(yè)務(wù)邏輯層)
模型層表示企業(yè)數(shù)據(jù)和業(yè)務(wù)邏輯看疗,它是應(yīng)用程序的主體部分沙峻。業(yè)務(wù)流程的處理過程對其他層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù)两芳,并返回最終的結(jié)果摔寨。業(yè)務(wù)模型的設(shè)計是MVC的核心。
2怖辆、視圖(表示層)
視圖是用戶看到并與之交互的界面是复,對早期web應(yīng)用來說,視圖就是HTML元素組成的界面竖螃。在新式web中淑廊,HTML依舊扮演重要角色,但是特咆,包括Adobe Flash 和 XHTML等新技術(shù)已經(jīng)層出不窮季惩。
MVC架構(gòu)一個大的好處是它能為Web應(yīng)用處理很多不同的視圖。在視圖中其實并沒有真正的業(yè)務(wù)處理發(fā)送腻格,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式画拾。
視圖功能強大,主要體現(xiàn)在以下幾個方面:
1)根據(jù)客戶類型顯示信息
2)顯示商業(yè)邏輯(模型)的結(jié)構(gòu)菜职,而不關(guān)心信息如何獲得青抛,何時獲得
3、控制器
控制器接受用戶的輸入酬核,并調(diào)用模型和視圖去完成用戶的需求蜜另。所有适室,當(dāng)用戶web頁面中的超鏈接或發(fā)生HTML表單時,控制器本身不輸出任何東西蚕钦,執(zhí)行任何處理亭病,它只是接受請求鹅很,并決定調(diào)用哪個模型構(gòu)件去處理請求嘶居,然后確定哪個視圖來顯示模型處理返回的數(shù)據(jù)。
4促煮、MVC處理流程
對于每一個用戶輸入邮屁,首先被控制器接受,并決定由哪個模型進(jìn)行處理菠齿,然后模型通過業(yè)務(wù)邏輯層處理用戶請求并返回數(shù)據(jù)佑吝,最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過顯示頁面呈現(xiàn)給用戶绳匀。
5芋忿、MVC架構(gòu)的優(yōu)點:
1)低耦合性
由于視圖層與業(yè)務(wù)層(模型)分開,使得修改視圖代碼或業(yè)務(wù)代碼時疾棵,不需要重新編譯其他模塊的代碼戈钢。2)高可用性和適用性
由于技術(shù)不斷進(jìn)步,現(xiàn)在訪問應(yīng)用程序可以有越來越多的方式是尔。MVC模式允許使用不同樣式的視圖來訪問同一段服務(wù)端代碼殉了。它包括HTTP瀏覽器或無線瀏覽器WAP。例如拟枚,用戶可以通過計算機(jī)或手機(jī)來訂購某產(chǎn)品薪铜,雖然訂購方式不同,但處理訂單的方式是一樣的恩溅。由于模型返回的數(shù)據(jù)并沒有格式化隔箍,所以同樣的構(gòu)件能夠被不同的界面使用。很多數(shù)據(jù)可以用HTML表示脚乡,也可以用WAP表示蜒滩,這些表示的更改僅需要更改視圖層的實現(xiàn)方式,控制層無需變化每窖。3)較低的生命周期成本
開發(fā)與維護(hù)用戶接口的技術(shù)含量降低帮掉。4)部署快速
可大幅度縮減開發(fā)時間,使程序員精力集中于業(yè)務(wù)邏輯窒典,界面開發(fā)人員集中精力于表項形式蟆炊。5)有利于軟件工程師管理
采用分層思想,每層具有某些相同的特征瀑志,利于過程化涩搓,工具化管理代碼污秆。