日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

MVC設(shè)計(jì)模式簡介

 碼農(nóng)9527 2021-10-26

MVC 設(shè)計(jì)模式一般指 MVC 框架,M(Model)指數(shù)據(jù)模型層,V(View)指視圖層,C(Controller)指控制層。使用 MVC 的目的是將 M 和 V 的實(shí)現(xiàn)代碼分離,使同一個(gè)程序可以有不同的表現(xiàn)形式。其中,View 的定義比較清晰,就是用戶界面。

  在 Web 項(xiàng)目的開發(fā)中,能夠及時(shí)、正確地響應(yīng)用戶的請求是非常重要的。用戶在網(wǎng)頁上單擊一個(gè) URL 路徑,這對 Web 服務(wù)器來說,相當(dāng)于用戶發(fā)送了一個(gè)請求。而獲取請求后如何解析用戶的輸入,并執(zhí)行相關(guān)處理邏輯,最終跳轉(zhuǎn)至正確的頁面顯示反饋結(jié)果,這些工作往往是控制層(Controller)來完成的。

  在請求的過程中,用戶的信息被封裝在 User 實(shí)體類中,該實(shí)體類在 Web 項(xiàng)目中屬于數(shù)據(jù)模型層(Model)。

  在請求顯示階段,跳轉(zhuǎn)的結(jié)果網(wǎng)頁就屬于視圖層(View)。

  像這樣,控制層負(fù)責(zé)前臺(tái)與后臺(tái)的交互,數(shù)據(jù)模型層封裝用戶的輸入/輸出數(shù)據(jù),視圖層選擇恰當(dāng)?shù)囊晥D來顯示最終的執(zhí)行結(jié)果,這樣的層次分明的軟件開發(fā)和處理流程被稱為 MVC 模式。

  在學(xué)習(xí) Servlet 及 JSP 開發(fā)時(shí),JavaBean 相當(dāng)于 Model,Servlet 相當(dāng)于 Controller,JSP 相當(dāng)于 View。

  總結(jié)如下:

  視圖層(View):負(fù)責(zé)格式化數(shù)據(jù)并把它們呈現(xiàn)給用戶,包括數(shù)據(jù)展示、用戶交互、數(shù)據(jù)驗(yàn)證、界面設(shè)計(jì)等功能。

  控制層(Controller):負(fù)責(zé)接收并轉(zhuǎn)發(fā)請求,對請求進(jìn)行處理后,指定視圖并將響應(yīng)結(jié)果發(fā)送給客戶端。

  數(shù)據(jù)模型層(Model):模型對象擁有最多的處理任務(wù),是應(yīng)用程序的主體部分,它負(fù)責(zé)數(shù)據(jù)邏輯(業(yè)務(wù)規(guī)則)的處理和實(shí)現(xiàn)數(shù)據(jù)操作(即在數(shù)據(jù)庫中存取數(shù)據(jù))。

  SUN 公司推出 JSP 技術(shù)的同時(shí),也推出了兩種 Web 應(yīng)用程序的開發(fā)模式。即 JSP+JavaBean 和 Servlet+JSP+JavaBean。

  JSP+JavaBean

  JSP+JavaBean 中 JSP 用于處理用戶請求,JavaBean 用于封裝和處理數(shù)據(jù)。該模式只有視圖和模型,一般把控制器的功能交給視圖來實(shí)現(xiàn),適合業(yè)務(wù)流程比較簡單的 Web 程序。  通過上圖可以發(fā)現(xiàn) JSP 從 HTTP Request(請求)中獲得所需的數(shù)據(jù),并進(jìn)行業(yè)務(wù)邏輯的處理,然后將結(jié)果通過 HTTP Response(響應(yīng))返回給瀏覽器。從中可見,JSP+JavaBean 模式在一定程度上實(shí)現(xiàn)了 MVC,即 JSP 將控制層和視圖合二為一,JavaBean 為模型層。

  JSP+JavaBean 模式中 JSP 身兼數(shù)職,既要負(fù)責(zé)視圖層的數(shù)據(jù)顯示,又要負(fù)責(zé)業(yè)務(wù)流程的控制,結(jié)構(gòu)較為混亂,并且也不是我們所希望的松耦合架構(gòu)模式,所以當(dāng)業(yè)務(wù)流程復(fù)雜的時(shí)候并不推薦使用。

  Servlet+JSP+JavaBean

  Servlet+JSP+JavaBean 中 Servlet 用于處理用戶請求,JSP 用于數(shù)據(jù)顯示,JavaBean 用于數(shù)據(jù)封裝,適合復(fù)雜的 Web 程序。  

  相比 JSP+JavaBean 模式來說,Servlet+JSP+JavaBean 模式將控制層單獨(dú)劃分出來負(fù)責(zé)業(yè)務(wù)流程的控制,接收請求,創(chuàng)建所需的 JavaBean 實(shí)例,并將處理后的數(shù)據(jù)返回視圖層(JSP)進(jìn)行界面數(shù)據(jù)展示。

  Servlet+JSP+JavaBean 模式的結(jié)構(gòu)清晰,是一個(gè)松耦合架構(gòu)模式,一般情況下,建議使用該模式。

  MVC優(yōu)缺點(diǎn)

  任何一件事都有利有弊,下面來了解一下 MVC 的優(yōu)缺點(diǎn)。

  優(yōu)點(diǎn)

  多視圖共享一個(gè)模型,大大提高了代碼的可重用性

  MVC 三個(gè)模塊相互獨(dú)立,松耦合架構(gòu)

  控制器提高了應(yīng)用程序的靈活性和可配置性

  有利于軟件工程化管理

  總之,我們通過 MVC 設(shè)計(jì)模式最終可以打造出一個(gè)松耦合+高可重用性+高可適用性的完美架構(gòu)。

  缺點(diǎn)

  原理復(fù)雜

  增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性

  視圖對模型數(shù)據(jù)的低效率訪問

  MVC 并不適合小型甚至中型規(guī)模的項(xiàng)目,花費(fèi)大量時(shí)間將 MVC 應(yīng)用到規(guī)模并不是很大的應(yīng)用程序,通常得不償失,所以對于 MVC 設(shè)計(jì)模式的使用要根據(jù)具體的應(yīng)用場景來決定。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多