MVC設計模式的總結

2020-11-28 WeareAllen

隨著Web應用的商業邏輯包含逐漸複雜的公式分析計算、決策支持等,使客戶機越 來越不堪重負,因此將系統的商業分離出來。單獨形成一部分,這樣三層結構產生了。 其中『層』是邏輯上的劃分。 三層體系結構是將整個系統劃分為如圖2.1所示的結構[3] (1)表現層(Presentation layer):包含表示代碼、用戶交互GUI、數據驗證。 該層用於向客戶端用戶提供GUI交互,它允許用戶在顯示系統中輸入和編輯數據,同時 系統提供數據驗證功能。 (2)業務邏輯層(Business layer):包含業務規則處理代碼,即程序中與業務 相關專業算法、業務政策等等。該層用於執行業務流程和制訂數據的業務規則。業務邏 輯層主要面向業務應用,為表示層提供業務服務。 (3)數據持久層(Persistence layer):包含數據處理代碼和數據存儲代碼。數 據持久層主要包括數據存取服務,負責與資料庫管理系統(如資料庫)之間的通信。 三個層次的每一層在處理程序上有各自明確的任務,在功能實現上有清晰的區分, 各層與其餘層分離,但各層之間存有通信接口。 採用三層軟體設計架構後,軟體系統在可擴展性和可復用性方面得到極大提高,在 資源分配策略設計合理運用的同時,軟體的性能指標也得到提升,系統的安全性和易管東北 理性也得到改善。 三層體系結構對Web應用的軟體架構產生很大影響,促進了基於組件的設計思想, 產生了許多開發Web層次框架的實現技術。較之兩級結構來說,三層結構修改和維護上 更加方便。目前開發B/S結構的Web應用系統廣泛採用這種三層體系結構。 設計模式起源: 1994 年,由 Erich Gamma,Richard Helm,Ralph Johnson 和 John Vlissides(即所謂的「四人幫』,GoF:Gang of Four)合作的以《設計模式:可復用的面向對象軟體的基本原理》為題目的書藉出版了。這本書解釋了模式的用處,同時也使得設計模式得到廣泛普及。在書中,他們四人記錄了他們長期工作中發現的經典 23 個設計模式。 IoC模式 IoC 模式是 Apach Avalon 項目創始人之一 Stefano Mazzocchi 提出的一種代碼調用模式,後被 MartinFowlcr 改名為 Dependency Injection(依賴注入),也就是將類和類,方法和方法之間的關係通過第三方(如配置文件)進行「注入」,不需要類或者方法自己去解決彼此間的調用關係。 IoC(Inversion of Control, 控制反轉), 是一種用來解決組件(也可以是簡單的 Java類)之間依賴關係、配置及生命周期的設計模式,它可以解決模塊間的耦合問題。IoC模式它是把組件之間的依賴關係提取(反轉)出來,由容器來具體配置。這樣,各個組件之間就不存在代碼關聯,解決了調用方與被調用方之間的關係問題,任何組件都可以最大程度的得到重用。 IoC 模式實現的技術途徑 表 2.1 列舉出了 IoC 的三種實現方式。本文中設計並實現的伺服器端數據驗證組件就是採用了第一種類型的 IoC 實現方式。 MVC模式 : MVC 是 Model-View-Control 的簡稱,即模型-視圖-控制器。它是一個存在於伺服器 表達層的模型,它將應用分開,改變應用之間的高度耦合。 MVC 是在 20 世紀 80 年代發明的一種軟體設計模式,至今已被廣泛使用,最近幾年 被推薦為 Sun 公司 J2EE 平臺的設計模式。 MVC 模式結構 MVC 模式將應用分為模型、視圖和控制器三個部分: 1. 視圖:數據的展現。 視圖是用戶看到並與之交互的界面。視圖向用戶顯示相關的數據,並能接收用戶的輸入數據,但是它並不進行任何實際的業務處理。視圖可以向模型查詢業務狀態,但不能改變模型。視圖還能接受模型發出的數據更新事件,從而對用戶界面進行同步更新。 2. 模型:應用對象。 模型是應用程式的主體部分。 模型代表了業務數據和業務邏輯; 當數據發生改變時,它要負責通知視圖部分;一個模型能為多個視圖提供數據。由於同一個模型可以被多個視圖重用,所以提高了應用的可重用性。 3. 控制器:邏輯處理、控制實體數據在視圖上展示、調用模型處理業務請求。 當 Web 用戶單擊 Web 頁面中的提交按鈕來發送 HTML 表單時,控制器接收請求並調用相應的模型組件去處理請求,然後調用相應的視圖來顯示模型返回的數據。 MVC 模式運行機制 如圖 2.2 所示為 MVC 模式運行機制: 在 MVC 模式中,Web 用戶向伺服器提交的所有請求都由控制器接管。接受到請求之後,控制器負責決定應該調用哪個模型來進行處理;然後模型根據用戶請求進行相應的業務邏輯處理,並返回數據;最後控制器調用相應的視圖來格式化模型返回的數據,並通過視圖呈現給用戶。 框架 軟體開發越來越倚重框架的使用。框架可以縮短應用軟體系統的開發周期,提高軟體生產效率和質量。大大簡化了開發。選擇何種框架、每個框架如何應用在在系統架構中是軟體架構設計的重要環節。 框架的定義 在設計模式中,Gamma 等人為框架給出了一個明確定義:「框架(Framework)是一組協同工作的類,它們為特定類型的軟體構築了一個可重用的設計」。 框架是一組為相互協作的構件(Component)的集合,它能夠處理一個或多個問題域(Domain)中的一系列問題。框架強調的是軟體設計的重用性和系統的可擴充性。它是為了追求重用所帶來的價值量最大化,而將被重用最多的部分封裝成各個組件,輔以回調機制將它們納入框架的控制範圍之內。所以,框架提供了可在應用程式之間共享的可復用的公共結構。 框架的特性 框架包含以下幾個關鍵特性: 1.在應用方面,框架是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法;在目標方面,框架是可被應用開發者定製的應用骨架。 2.框架是一種軟體,是應用程式的半成品。它可以供系統開發者選用,以完成系統的開發。 3.框架解決的是某個特定範圍即領域的問題。每個框架都有自己的目標領域,它並不能滿足所有人的所有需求。

相關焦點

  • MVC設計模式(模型-視圖-控制器)設計模式介紹
    控制器與視圖的分離,支持了視圖與不同控制器結合的靈活性,以實現不同的操作模式,例如對普通用戶、專業用戶、或不使用控制器建立的只讀視圖。這種分離還為在應用中集成新的I/O設備提供了途徑。   4 MVC的變化   把模型、視圖、控制器實行分離,使設計和使用有了很大靈活性。但是,在現實中,視圖和控制器的功能通常是緊密地聯繫在一起的。
  • 設計模式之狀態模式總結篇
    狀態模式總結篇狀態模式總結篇,我們將從以下幾個方面對狀態模式進行總結。狀態模式出現的意圖是什麼?通過對象內部狀態發生改變進而來改變對象的行為,對象看起來好像是被修改了一樣。本文出處凱哥Java(kaigejava)講《23種設計模》系列教程種的《狀態模式總結篇》主要解決的問題是什麼?對象的行為依賴於對象的狀態變化(屬性變更),並且根據屬性值(狀態)的改變而改變相關的行為。如,出不出糖果這個行為受糖果機裡面有沒有糖果和有沒有投幣這兩個狀態影響而改變的。什麼時候或者是什麼場景下使用狀態模式?
  • 面試官問spring mvc底層實現流程,該怎麼說?
    DispatcherServlet:spring mvc的入口,整個框架運行就是在這個servlet中完成。HandlerMapping:處理器映射起。用於映射每個處理方法對應的請求路徑。是一個map結構<url,method>。
  • .NET開發框架:另類的MVC架構和ORM系統
    【IT168 技術】  第一部分 另類的MVC架構JVPL架構  (JVPL模式的系統結構圖)  1.JVPL模式(JSON+視圖+處理器+加載器)  1)定義:  JVPL和mvc設計模式類似,一個變種的MVC設計模式.
  • 什麼是MVVM,MVC和MVVM的區別,MVVM框架VUE實現原理
    總結:在MVVM的框架下視圖和模型是不能直接通信的。它們通過ViewModel來通信,ViewModel通常要實現一個observer觀察者,當數據發生變化,ViewModel能夠監聽到數據的這種變化,然後通知到對應的視圖做自動更新,而當用戶操作視圖,ViewModel也能監聽到視圖的變化,然後通知數據做改動,這實際上就實現了數據的雙向綁定。
  • 6.java設計模式之適配器模式
    基本需求:將一個220V的電壓輸出成5V的電壓,其中220V電壓為被適配者,變壓器為適配器,5v電壓為適配目標基本介紹:適配器模式屬於結構型模式,將某個類的接口轉換成客戶端期望的另一個接口表示其別名為包裝器(Wrapper) 分為類適配器模式,對象適配器模式,接口適配器模式用戶的角度看不到被適配者,是解耦的,用戶調用適配器轉化出來的目標接口方法,適配器再調用被適配者的相關接口方法類適配器模式:Adapter 類,通過繼承 src 類,實現 dst 類接口,完成 src->dst
  • 淺談Java Web經典三層架構和MVC框架模式
    一、MVC設計模式1.MVC的概念首先我們需要知道MVC模式並不是javaweb項目中獨有的,MVC是一種軟體工程中的一種軟體架構模式,把軟體系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller
  • 如何設計商業模式?——《商業模式新生代》讀書筆記之七
    讀書筆記分享——《商業模式畫布》之一、幾種常見的商業模式之後,接下來幾期我們將了解如何進行商業模式的設計為了確保大家有耐心讀完所有的內容,對於這幾種商業模式設計的方法我也將分為幾期來為大家進行詳細解讀。
  • 14個編寫Spring MVC控制器的實用小技巧
    import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller
  • UI設計模式大閱兵
    互動設計師在設計線框圖原型時,熟知常見的Web設計模式很有幫助,做到「心中有數」才能創造出符合需求,用戶易學易用的界面來。常見的設計模式有哪些呢?在商業中有哪些案例呢?某公司互動設計師張雅秋寫了一篇博文對此進行了總結,現轉載於此,全文如下:互動設計師在設計線框圖原型時,熟知常見的Web設計模式很有幫助,做到「心中有數」才能創造出符合需求,用戶易學易用的界面來。所謂「沒有必要重複發明輪子」,模式往往容易解決常見問題,正確的模式能幫用戶熟悉界面、提高效率。常見的UI設計模式如下圖:
  • 黑暗模式大勢所趨,盤點常見APP黑暗模式設計
    前段時候,一則「蘋果稱:微信若堅持不開發夜間模式,或面臨下架」的消息傳播網際網路,由於展開對黑暗模式的討論與探究不絕於耳,本文也以此為話題聊聊常見的APP黑暗模式設計。
  • 從遊戲中學習產品設計07:總結篇
    已經完成從遊戲中學習產品設計的充值篇、消費篇、活躍篇、成就篇、反饋篇和社交篇的套路總結,分析了非遊戲類應用中運用了哪些類似套路,並且與大家一起進行拓展思考。再次強調,這一系列文章主要分享的是「術」層面的思考,更多的介紹了如何設計沉浸式體驗的方法論,所以會看起來相對功利,感興趣的朋友點擊文末相關文章查看詳情!
  • 基於模式的SoC設計方法研究
    集合中的每個對象都具有自己的屬性和任務,它們根據收到的消息、句柄等來完成相應的任務,從而實現系統的整體功能.在系統級建立面向對象的設計模式庫和IP復用庫,OO庫即面向對象資料庫,主要存放的是各種SoC設計模式(pattern) ,在SoC系統框架設計、IP設計以及IP通信設計中都可以使用模式。
  • 研究總結CRISPR–Cas實驗的設計和分析
    研究總結CRISPR–Cas實驗的設計和分析 作者:小柯機器人 發布時間:2020/4/19 23:15:22 近日,美國哈佛大學與麻省理工學院聯合的博德研究所John G.
  • 譯文丨2018網頁設計總結
    本文是從八個方面來對2018的網頁設計的總結,一起來看看~本文翻譯自澳大利亞設計師Rylan Ziesing及其設計團隊Rhino Design對2018年網頁設計的總結。
  • 復盤大集中模式下的角色權限設計
    一、項目背景本項目是一個關於OA系統升級改造的ToG項目,涉及3000+單位5萬用戶,橫跨市–區縣–鎮街3層行政區劃。二、從組織架構看權限的管理模式回顧整個項目,在進行權限設計之前,必需先了解現場的組織架構。因為RBAC模型主要描述的只是用戶–角色–權限之間的關係,而決定RBAC模型複雜程度的是業務上的組織架構。當組織架構達到一定量級的複雜程度後,根據系統部署的方式或管理理念的不同,會分化出不同的權限管理模式,不同的管理模式對系統權限設計也會有不一樣的要求。
  • 如何正確地應用Web MVC架構模式分離表示層和模型處理層耦合關係
    軟體項目實訓及課程設計指導——如何正確地應用Web MVC架構模式分離表示層和模型處理層耦合關係1、MVC體系架構設計模式是用來幫助系統設計人員控制「變化」的一種設計模式MVC體系架構設計模式是上世紀80年代在Smalltalk-80中出現的一種軟體設計模式
  • 案例分享 | 工程總承包模式下的設計實踐及思考
    ,從設計管理的角度出發,對比分析EPC模式與傳統模式的區別和聯繫,歸納出EPC項目中設計管理在不同階段的工作要點,探討民航領域在EPC模式下的項目特點和發展趨勢。而在EPC模式中設計是整個項目的龍頭,將貫穿於項目的全生命周期。
  • 蒸發器設計方案要點總結
    今天咱們就給大家介紹一下蒸發器設計方案要點,給您總結蒸發器設計方案要點,便於大家了解蒸發器選型。二、蒸發器設計方案要點總結1、物料的沸點升高問題。蒸發的物料是溶有不揮發溶質的溶液。在相同溫度下,其蒸汽壓較純溶劑的低,因此在相同壓力下,溶液的沸點就高於溶劑的沸點。在蒸發器設計方案時要注意物料的沸點升高問題。