MVC设计模式及其工作原理
?
?MVC模式介紹:
MVC即模型Model、視圖View、控制器Controller,用一種將業(yè)務(wù)邏輯、數(shù)據(jù)、視圖分離的方式組織架構(gòu)代碼,通過(guò)分離關(guān)注點(diǎn)的方式來(lái)支持改進(jìn)應(yīng)用組織方式,其促成了業(yè)務(wù)數(shù)據(jù)Model從用戶界面View中分離出來(lái),還有第三個(gè)組成部分Controller負(fù)責(zé)管理傳統(tǒng)意義上的業(yè)務(wù)邏輯和用戶輸入,通常將MVC模式看作架構(gòu)型設(shè)計(jì)模式。
M: model(模型層), Dao, Service, pojo,util這些都是模型
V: view(視圖層): jsp,html....
C: Controller(控制層): Servlet, Controller...
體現(xiàn)的分層概念: V -->C -->M Servlet --> Service-->Dao
只能是上層調(diào)用下層 Dao -->Service 錯(cuò)誤
不能跨層調(diào)用 Servlet -->Dao 錯(cuò)誤
每一層使用的技術(shù)的核心類,不能出現(xiàn)在其他層
Service層方法: login(HttpServletRequest request, ....) 錯(cuò)誤
java在這個(gè)MVC模式上. 提出java經(jīng)典三層模型:
Web層:
Service層:
Dao層:
大型項(xiàng)目分層:
先按功能模塊分層:
用戶模塊, 訂單模塊, 商品模塊,物流模塊...
每個(gè)模塊包含java經(jīng)典三層模型
用戶模塊: 訂單模塊:
? |-- web |-- web
? |--service |--service
? |--dao |--dao
? |--pojo |--pojo
? |--util |--util
MVC所起的作用:
在前端組件式架構(gòu)開發(fā),常常將視圖、數(shù)據(jù)、業(yè)務(wù)邏輯等寫在一個(gè)模塊內(nèi),如果組件的內(nèi)容比較多,容易造成層次的混亂,增加開發(fā)與維護(hù)的成本,而使用MVC模式可以將數(shù)據(jù)層、視圖層、控制器層進(jìn)行分層組織,用以減少耦合。
mvc工作原理:
Model(模型):一個(gè)或多個(gè)JavaBean對(duì)象,用于存儲(chǔ)數(shù)據(jù)。JavaBean主要提供簡(jiǎn)單的setXXX方法和getXXX方法,在這些方法當(dāng)中不涉及對(duì)數(shù)據(jù)的具體處理細(xì)節(jié),以便增強(qiáng)模式的通用性
View(視圖):一個(gè)或多個(gè)JSP頁(yè)面。其作用是向控制器提交必要的數(shù)據(jù)和顯示數(shù)據(jù)。JSP頁(yè)面可以使用HTML標(biāo)記Javabean標(biāo)記以及Java程序片或者Java表達(dá)式來(lái)顯示數(shù)據(jù)。視圖的主要工作就是顯示數(shù)據(jù),對(duì)數(shù)據(jù)的邏輯操作由控制器負(fù)責(zé)。
Controller(控制器):一個(gè)或者多個(gè)Servlet。控制器負(fù)責(zé)視圖和模型之間的交互,控制對(duì)用戶輸入的響應(yīng)、響應(yīng)方式和流程;它主要負(fù)責(zé)兩方面的動(dòng)作,一是把用戶的請(qǐng)求分發(fā)到相應(yīng)的模型,二是把模型的改變及時(shí)地反映到視圖上。
根據(jù)視圖提交的要求進(jìn)行數(shù)據(jù)處理操作,并將有關(guān)的結(jié)果存儲(chǔ)到JavaBean中,然后servlet使用轉(zhuǎn)發(fā)或者重定向的方式請(qǐng)求視圖中的某個(gè)JSP頁(yè)面顯示數(shù)據(jù)。
總結(jié)
以上是生活随笔為你收集整理的MVC设计模式及其工作原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 魔方照片墙总结
- 下一篇: s3c2440移植MQTT