版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
MVC設計模式2024/2/202內(nèi)容提要設計原則設計模式MVC模式MVC模式具體實例MVC模式的優(yōu)缺點設計原則面向?qū)ο箝_發(fā)的五大原則SOLID2024/2/204五大設計原則1、單一職責原則
(SingleResponsibilityPrinciple):每個方法或類應當有且僅有一個改變的理由。這意味著每個方法或類應當做一件事情,或者只有一項職責。2、開閉原則(OpenClosePrinciple)開閉原則就是說對擴展開放,對修改關閉。3、里氏代換原則(LiskovSubstitutionPrinciple)里氏代換原則中說,任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。2024/2/205五大設計原則4、接口隔離原則(InterfaceSegregationPrinciple)這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。5、依賴倒轉(zhuǎn)原則(DependenceInversionPrinciple)真對接口編程,依賴于抽象而不依賴于具體。設計模式2024/2/207什么是設計模式Patterns,顧名思義,具有某種重復性規(guī)律的方案。定義1:DesignPatterns,就是設計過程中可以反復使用的、可以解決特定問題的設計方法。
定義2:DesignPatternisasolutiontoaprobleminacontext.
也就是說,設計模式是針對特定上下文的特定問題的解決方案,這種解決方案被抽象化、模版化,就是設計模式。2024/2/208什么是設計模式設計模式是前人留下的經(jīng)驗,相當于武俠小說中的武林秘籍,所謂的編程語言,就是內(nèi)功招式。其實設計模式的核心就是高內(nèi)聚,低耦合。MVC2024/2/2010MVC設計模式MVC模式的目的是實現(xiàn)一種動態(tài)的程式設計,使后續(xù)對程序的修改和擴展簡化,并且使程序某一部分的重復利用成為可能。除此之外,此模式通過對復雜度的簡化,使程序結(jié)構(gòu)更加直觀。MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)2024/2/2011MVC=Model+View+Controller模型(
Model)
–模型持有所有的數(shù)據(jù)、狀態(tài)和程序邏輯,是應用程序的核心。視圖(View)
–代表用戶交互界面,用來顯示數(shù)據(jù)??刂破?
Controller)-負責轉(zhuǎn)發(fā)請求,對請求進行處理2024/2/2012MVC模式ControllerModelView用戶請求改變狀態(tài)通知改變改變顯示狀態(tài)查詢①②④③⑤事件方法調(diào)用2024/2/2013Model2-基于MVC模式的架構(gòu)MVC實例基于SSH架構(gòu)的網(wǎng)上商城系統(tǒng)2024/2/2015MVC實例——網(wǎng)上商城系統(tǒng)基于JavaEE的多層體系結(jié)構(gòu)數(shù)據(jù)庫服務器數(shù)據(jù)訪問層持久化層顯示層業(yè)務邏輯層瀏覽器Web服務器2024/2/2016MVC實例——網(wǎng)上商城系統(tǒng)MVC基于JavaEE的應用模型圖瀏覽器ControllerServlet/ActionVIEW*.jsp/*.htmlModel數(shù)據(jù)庫服務器業(yè)務邏輯數(shù)據(jù)訪問Web服務器顯示層數(shù)據(jù)層業(yè)務層2024/2/2017視圖2024/2/2018控制器//用戶和密碼正確,添加會話//此處調(diào)用Model的對象if(userService.loginUser(un,ps)){session.removeAttribute("userName");session.setAttribute("userName",un);session.setAttribute("nonMessageCount",list.size());//struts通過預先設置好的struts.xml,跳轉(zhuǎn)到顯示層return
SUCCESS;}else{result
="用戶名或密碼錯誤!";ctx.getSession().put("loginCount",loginCount);ctx.put("message",result);return
ERROR;}2024/2/2019模型//判斷用戶登錄狀態(tài)public
booleanloginUser(Stringusername,Stringpassword){Useruser=userDao.findByUsername(username);if(user!=null&&user.getPassword().equals(MD5Main(password))){return
true;}else{return
false;}}2024/2/2020MVC的優(yōu)點1)分工明確:使用MVC可以把數(shù)據(jù)庫開發(fā),程序業(yè)務邏輯開發(fā),頁面開發(fā)分開,每一層都具有相同的特征,方便以后的代碼維護。方便多開發(fā)人員間的分工。2)
松耦合:視圖層和業(yè)務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個應用的業(yè)務流程或者業(yè)務規(guī)則的改變只需要改動MVC的模型層即可。2024/2/2021MVC的優(yōu)點3)重用性高:視圖控制模型分離,提高代碼重用性。
4)可移植性:因為模型是獨立于視圖的,所以可以把一個模型獨立地移植到新的平臺工作。需要做的只是在新平臺上對視圖和控制器進行新的修改。2024/2/2022MVC的缺點1)清晰的構(gòu)架以代碼的復雜性為代價,對小項目優(yōu)可能反而降低開發(fā)效率。2)運行效率相對較低。3)控制層和表現(xiàn)層有時會過于緊密,導致沒有真正分離和重用
2024/2/2023總結(jié)MVC本質(zhì)上是解耦,讓UI和邏輯,數(shù)據(jù)分離
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版工程車租賃合同模板范本
- 2025年度個人房產(chǎn)抵押擔保債務重組合同4篇
- 2025年度道路工程保險合同書3篇
- 2025年度汽車貸款逾期違約擔保合同4篇
- 2025年度個人財產(chǎn)抵押反擔保協(xié)議4篇
- 2025年紫金財產(chǎn)保險股份有限公司招聘筆試參考題庫含答案解析
- 2025年湖南藝創(chuàng)建筑工程有限公司招聘筆試參考題庫含答案解析
- 2025年度醫(yī)療健康產(chǎn)業(yè)貸款合同范本4篇
- 2025年廣西來賓市自來水有限公司招聘筆試參考題庫含答案解析
- 2025年南京航空航天大學后勤集團招聘筆試參考題庫含答案解析
- 第7課《中華民族一家親》(第一課時)(說課稿)2024-2025學年統(tǒng)編版道德與法治五年級上冊
- 2024年醫(yī)銷售藥銷售工作總結(jié)
- 急診科十大護理課件
- 山東省濟寧市2023-2024學年高一上學期1月期末物理試題(解析版)
- GB/T 44888-2024政務服務大廳智能化建設指南
- 2025年上半年河南鄭州滎陽市招聘第二批政務輔助人員211人筆試重點基礎提升(共500題)附帶答案詳解
- 山東省濟南市歷城區(qū)2024-2025學年七年級上學期期末數(shù)學模擬試題(無答案)
- 國家重點風景名勝區(qū)登山健身步道建設項目可行性研究報告
- 投資計劃書模板計劃方案
- 《接觸網(wǎng)施工》課件 3.4.2 隧道內(nèi)腕臂安裝
- 2024-2025學年九年級語文上學期第三次月考模擬卷(統(tǒng)編版)
評論
0/150
提交評論