MVC設(shè)計模式講解_第1頁
MVC設(shè)計模式講解_第2頁
MVC設(shè)計模式講解_第3頁
MVC設(shè)計模式講解_第4頁
MVC設(shè)計模式講解_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

MVC設(shè)計模式2023/11/82內(nèi)容提要設(shè)計原則設(shè)計模式MVC模式MVC模式具體實例MVC模式的優(yōu)缺點設(shè)計原則面向?qū)ο箝_發(fā)的五大原則SOLID2023/11/84五大設(shè)計原則1、單一職責(zé)原則

(SingleResponsibilityPrinciple):每個方法或類應(yīng)當(dāng)有且僅有一個改變的理由。這意味著每個方法或類應(yīng)當(dāng)做一件事情,或者只有一項職責(zé)。2、開閉原則(OpenClosePrinciple)開閉原則就是說對擴展開放,對修改關(guān)閉。3、里氏代換原則(LiskovSubstitutionPrinciple)里氏代換原則中說,任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。2023/11/85五大設(shè)計原則4、接口隔離原則(InterfaceSegregationPrinciple)這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。5、依賴倒轉(zhuǎn)原則(DependenceInversionPrinciple)真對接口編程,依賴于抽象而不依賴于具體。設(shè)計模式2023/11/87什么是設(shè)計模式Patterns,顧名思義,具有某種重復(fù)性規(guī)律的方案。定義1:DesignPatterns,就是設(shè)計過程中可以反復(fù)使用的、可以解決特定問題的設(shè)計方法。

定義2:DesignPatternisasolutiontoaprobleminacontext.

也就是說,設(shè)計模式是針對特定上下文的特定問題的解決方案,這種解決方案被抽象化、模版化,就是設(shè)計模式。2023/11/88什么是設(shè)計模式設(shè)計模式是前人留下的經(jīng)驗,相當(dāng)于武俠小說中的武林秘籍,所謂的編程語言,就是內(nèi)功招式。其實設(shè)計模式的核心就是高內(nèi)聚,低耦合。MVC2023/11/810MVC設(shè)計模式MVC模式的目的是實現(xiàn)一種動態(tài)的程式設(shè)計,使后續(xù)對程序的修改和擴展簡化,并且使程序某一部分的重復(fù)利用成為可能。除此之外,此模式通過對復(fù)雜度的簡化,使程序結(jié)構(gòu)更加直觀。MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)2023/11/811MVC=Model+View+Controller模型(

Model)

–模型持有所有的數(shù)據(jù)、狀態(tài)和程序邏輯,是應(yīng)用程序的核心。視圖(View)

–代表用戶交互界面,用來顯示數(shù)據(jù)??刂破?

Controller)-負責(zé)轉(zhuǎn)發(fā)請求,對請求進行處理2023/11/812MVC模式ControllerModelView用戶請求改變狀態(tài)通知改變改變顯示狀態(tài)查詢①②④③⑤事件方法調(diào)用2023/11/813Model2-基于MVC模式的架構(gòu)MVC實例基于SSH架構(gòu)的網(wǎng)上商城系統(tǒng)2023/11/815MVC實例——網(wǎng)上商城系統(tǒng)基于JavaEE的多層體系結(jié)構(gòu)數(shù)據(jù)庫服務(wù)器數(shù)據(jù)訪問層持久化層顯示層業(yè)務(wù)邏輯層瀏覽器Web服務(wù)器2023/11/816MVC實例——網(wǎng)上商城系統(tǒng)MVC基于JavaEE的應(yīng)用模型圖瀏覽器ControllerServlet/ActionVIEW*.jsp/*.htmlModel數(shù)據(jù)庫服務(wù)器業(yè)務(wù)邏輯數(shù)據(jù)訪問Web服務(wù)器顯示層數(shù)據(jù)層業(yè)務(wù)層2023/11/817視圖2023/11/818控制器//用戶和密碼正確,添加會話//此處調(diào)用Model的對象if(userService.loginUser(un,ps)){session.removeAttribute("userName");session.setAttribute("userName",un);session.setAttribute("nonMessageCount",list.size());//struts通過預(yù)先設(shè)置好的struts.xml,跳轉(zhuǎn)到顯示層return

SUCCESS;}else{result

="用戶名或密碼錯誤!";ctx.getSession().put("loginCount",loginCount);ctx.put("message",result);return

ERROR;}2023/11/819模型//判斷用戶登錄狀態(tài)public

booleanloginUser(Stringusername,Stringpassword){Useruser=userDao.findByUsername(username);if(user!=null&&user.getPassword().equals(MD5Main(password))){return

true;}else{return

false;}}2023/11/820MVC的優(yōu)點1)分工明確:使用MVC可以把數(shù)據(jù)庫開發(fā),程序業(yè)務(wù)邏輯開發(fā),頁面開發(fā)分開,每一層都具有相同的特征,方便以后的代碼維護。方便多開發(fā)人員間的分工。2)

松耦合:視圖層和業(yè)務(wù)層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需要改動MVC的模型層即可。2023/11/821MVC的優(yōu)點3)重用性高:視圖控制模型分離,提高代碼重用性。

4)可移植性:因為模型是獨立于視圖的,所以可以把一個模型獨立地移植到新的平臺工作。需要做的只是在新平臺上對視圖和控制器進行新的修改。2023/11/822MVC的缺點1)清晰的構(gòu)架以代碼的復(fù)雜性為代價,對小項目優(yōu)可能反而降低開發(fā)效率。2)運行效率相對較低。3)控制層和表現(xiàn)層有時會過于緊密,導(dǎo)致沒有真正分離和重用

2023/11/823總結(jié)MVC本質(zhì)上是解耦,讓UI和邏輯,數(shù)據(jù)分離

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論