MVC是什么?
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,是一種軟件架構(gòu)思想、其核心思想是,在設(shè)計(jì)一個(gè)軟件的時(shí)候,應(yīng)該將軟件劃分成模型(model)、視圖(view)、控制器(controller)這三種不同類型的模塊。其中,模型負(fù)責(zé)數(shù)據(jù)處理(業(yè)務(wù)邏輯),視圖負(fù)責(zé)數(shù)據(jù)展現(xiàn)(表示邏輯),控制器負(fù)責(zé)協(xié)調(diào)模型和視圖。
注:視圖將請求發(fā)送給控制器,由控制器來選擇對應(yīng)的
模型來處理;模型返回的結(jié)果也要給控制器,由控制器選擇對應(yīng)的視圖來展現(xiàn)。

MVC.png
MVC的優(yōu)點(diǎn)
1、將數(shù)據(jù)處理與數(shù)據(jù)展現(xiàn)分開,耦合性低。
比如,模型返回的數(shù)據(jù),可以使用不同的視圖來展現(xiàn)。又比如,要調(diào)用新的模型,不用修改視圖。
2、重用性高
MVC模式允許使用各種不同樣式的視圖來訪問同一個(gè)服務(wù)器端的代碼,因?yàn)槎鄠€(gè)視圖能共享一個(gè)模型,它包括任何WEB(HTTP)瀏覽器或者無線瀏覽器(wap)。
3、方便測試
比如,將業(yè)務(wù)邏輯寫在java類里面,可以直接測試。如果將業(yè)務(wù)邏輯寫在servlet類里面,需要部署整個(gè)應(yīng)用才能測試。
4、方便分工協(xié)作
MVC的缺點(diǎn)
使用MVC會增加代碼量,增加軟件設(shè)計(jì)的難度、相應(yīng)會增加軟件開發(fā)的成本。所以,只有有一定規(guī)模、并且要求 具有良好的維護(hù)性與擴(kuò)展性的軟件,才需要使用MVC。
MVC處理請求的流程

mvc.png