MVC模型架構(gòu)

MVC是模型(Model)、視圖(View)和控制(Controller)三個(gè)單詞的第一個(gè)字母,是一種目前廣泛流行應(yīng)用模型。它的目的是實(shí)現(xiàn)Web系統(tǒng)的職能分工,將輸入,處理和輸出分開。下圖是MVC模型關(guān)系圖。

  • 模型層實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯;
  • 視圖層則用于與用戶交互;
  • 控制層是模型與視圖之間溝通的橋梁。
1、模型層(業(yè)務(wù)邏輯層)

模型層表示企業(yè)數(shù)據(jù)和業(yè)務(wù)邏輯,它是應(yīng)用程序的主體部分。業(yè)務(wù)流程的處理過程對(duì)其他層來說是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)是MVC的核心。

2、視圖(表示層)

視圖是用戶看到并與之交互的界面,對(duì)早期web應(yīng)用來說,視圖就是HTML元素組成的界面。在新式web中,HTML依舊扮演重要角色,但是,包括Adobe Flash 和 XHTML等新技術(shù)已經(jīng)層出不窮。

MVC架構(gòu)一個(gè)大的好處是它能為Web應(yīng)用處理很多不同的視圖。在視圖中其實(shí)并沒有真正的業(yè)務(wù)處理發(fā)送,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。

視圖功能強(qiáng)大,主要體現(xiàn)在以下幾個(gè)方面:
1)根據(jù)客戶類型顯示信息
2)顯示商業(yè)邏輯(模型)的結(jié)構(gòu),而不關(guān)心信息如何獲得,何時(shí)獲得

3、控制器

控制器接受用戶的輸入,并調(diào)用模型和視圖去完成用戶的需求。所有,當(dāng)用戶web頁面中的超鏈接或發(fā)生HTML表單時(shí),控制器本身不輸出任何東西,執(zhí)行任何處理,它只是接受請(qǐng)求,并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后確定哪個(gè)視圖來顯示模型處理返回的數(shù)據(jù)。

4、MVC處理流程

對(duì)于每一個(gè)用戶輸入,首先被控制器接受,并決定由哪個(gè)模型進(jìn)行處理,然后模型通過業(yè)務(wù)邏輯層處理用戶請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過顯示頁面呈現(xiàn)給用戶。

5、MVC架構(gòu)的優(yōu)點(diǎn):
  • 1)低耦合性
    由于視圖層與業(yè)務(wù)層(模型)分開,使得修改視圖代碼或業(yè)務(wù)代碼時(shí),不需要重新編譯其他模塊的代碼。

  • 2)高可用性和適用性
    由于技術(shù)不斷進(jìn)步,現(xiàn)在訪問應(yīng)用程序可以有越來越多的方式。MVC模式允許使用不同樣式的視圖來訪問同一段服務(wù)端代碼。它包括HTTP瀏覽器或無線瀏覽器WAP。例如,用戶可以通過計(jì)算機(jī)或手機(jī)來訂購某產(chǎn)品,雖然訂購方式不同,但處理訂單的方式是一樣的。由于模型返回的數(shù)據(jù)并沒有格式化,所以同樣的構(gòu)件能夠被不同的界面使用。很多數(shù)據(jù)可以用HTML表示,也可以用WAP表示,這些表示的更改僅需要更改視圖層的實(shí)現(xiàn)方式,控制層無需變化。

  • 3)較低的生命周期成本
    開發(fā)與維護(hù)用戶接口的技術(shù)含量降低。

  • 4)部署快速
    可大幅度縮減開發(fā)時(shí)間,使程序員精力集中于業(yè)務(wù)邏輯,界面開發(fā)人員集中精力于表項(xiàng)形式。

  • 5)有利于軟件工程師管理
    采用分層思想,每層具有某些相同的特征,利于過程化,工具化管理代碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容