麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

MVC 設計模式:將 Web 應用分三層

2019-11-18 12:44:13
字體:
來源:轉載
供稿:網友

  MVC是一種目前廣泛流行的軟件設計模式,早在70年代,IBM就推出了Sanfronscisico項目計劃,其實就是MVC設計模式的研究。近來,隨著J2EE的成熟,它正在成為在J2EE平臺上推薦的一種設計模型,也是廣大java開發者非常感愛好的設計模型。MVC模式也逐漸在php和ColdFusion開發者中運用,并有增長趨勢。隨著網絡應用的快速增加,MVC模式對于Web應用的開發無疑是一種非常先進的設計思想,無論你選擇哪種語言,無論應用多復雜,它都能為你理解分析應用模型時提供最基本的分析方法,為你構造產品提供清楚的設計框架,為你的軟件工程提供規范的依據。
  
  MVC設計思想
  MVC英文即Model-View-Controller,即把一個應用的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,這樣一個應用被分成三個層——模型層、視圖層、控制層。
  
  視圖(View)代表用戶交互界面,對于Web應用來說,可以概括為Html界面,但有可能為XHTML、xml和Applet。隨著應用的復雜性和規模性,界面的處理也變得具有挑戰性。一個應用可能有很多不同的視圖,MVC設計模式對于視圖的處理僅限于視圖上數據的采集和處理,以及用戶的請求,而不包括在視圖上的業務流程的處理。業務流程的處理交予模型(Model)處理。比如一個訂單的視圖只接受來自模型的數據并顯示給用戶,以及將用戶界面的輸入數據和請求傳遞給控制和模型。
  
  模型(Model):就是業務流程/狀態的處理以及業務規則的制定。業務流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數據,并返回最終的處理結果。業務模型的設計可以說是MVC最主要的核心。目前流行的EJB模型就是一個典型的應用例子,它從應用技術實現的角度對模型做了進一步的劃分,以便充分利用現有的組件,但它不能作為應用設計模型的框架。它僅僅告訴你按這種模型設計就可以利用某些技術組件,從而減少了技術上的困難。對一個開發者來說,就可以專注于業務模型的設計。MVC設計模式告訴我們,把應用的模型按一定的規則抽取出來,抽取的層次很重要,這也是判定開發人員是否優秀的設計依據。抽象與具體不能隔得太遠,也不能太近。MVC并沒有提供模型的設計方法,而只告訴你應該組織治理這些模型,以便于模型的重構和提高重用性。我們可以用對象編程來做比喻,MVC定義了一個頂級類,告訴它的子類你只能做這些,但沒法限制你能做這些。這點對編程的開發人員非常重要。
  
  業務模型還有一個很重要的模型那就是數據模型。數據模型主要指實體對象的數據保存(持續化)。比如將一張訂單保存到數據庫,從數據庫獲取訂單。我們可以將這個模型單獨列出,所有有關數據庫的操作只限制在該模型中。
  
  控制(Controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求。控制層并不做任何的數據處理。例如,用戶點擊一個連接,控制層接受請求后, 并不處理業務信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應多個視圖,一個視圖可能對應多個模型。
  
  MVC的優點
  大部分用過程語言比如asp、PHP開發出來的Web應用,初始的開發模板就是混合層的數據編程。例如,直接向數據庫發送請求并用HTML顯示,開發速度往往比較快,但由于數據頁面的分離不是很直接,因而很難體現出業務模型的樣子或者模型的重用性。產品設計彈性力度很小,很難滿足用戶的變化性需求。MVC要求對應用分層,雖然要花費額外的工作,但產品的結構清楚,產品的應用通過模型可以得到更好地體現。
  
  首先,最重要的是應該有多個視圖對應一個模型的能力。在目前用戶需求的快速變化下,可能有多種方式訪問應用的要求。例如,訂單模型可能有本系統的訂單,也有網上訂單,或者其他系統的訂單,但對于訂單的處理都是一樣,也就是說訂單的處理是一致的。按MVC設計模式,一個訂單模型以及多個視圖即可解決問題。這樣減少了代碼的復制,即減少了代碼的維護量,一旦模型發生改變,也易于維護。
  
MVC 設計模式:將 Web 應用分三層

  MVC設計模型
  其次,由于模型返回的數據不帶任何顯示格式,因而這些模型也可直接應用于接口的使用。
  
  再次,由于一個應用被分離為三層,因此有時改變其中的一層就能滿足應用的改變。一個應用的業務流程或者業務規則的改變只需改動MVC的模型層。
  
  控制層的概念也很有效,由于它把不同的模型和不同的視圖組合在一起完成不同的請求,因此,控制層可以說是包含了用戶請求權限的概念。
  
  最后,它還有利于軟件工程化治理。由于不同的層各司其職,每一層不同的應用具有某些相同的特征,有利于通過工程化、工具化產生治理程序代碼。
  
  MVC的缺點
  MVC的設計實現并不十分輕易, 理解起來比較輕易,但對開發人員的要求比較高。MVC只是一種基本的設計思想,還需要具體的設計規劃。
  
  模型和視圖的嚴格分離可能使得調試困難一些,但比較輕易發現錯誤。
  
  經驗表明,MVC由于將應用分為三層,意味著代碼文件增多,因此,對于文件的治理需要費點心思。
  
  綜合上述,MVC是構筑軟件非常好的基本模式,至少將業務處理與顯示分離,強迫將應用分為模型、視圖以及控制層, 使得你會認真考慮應用的額外復雜性,把這些想法融進到架構中,增加了應用的可拓展性。假如能把握到這一點,MVC模式會使得你的應用更加強壯,更加有彈性,更加個性化。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产日韩免费观看 | 日韩a毛片免费观看 | 91av在线免费视频 | 亚洲第一综合色 | 在线播放一区二区三区 | 国产在线1区 | 亚洲国产精品一区二区精品 | 国产激情网 | 91 在线观看 | 欧美www | 91性高湖久久久久久久久网站 | 国产1区2区在线 | 国产1区2区3区中文字幕 | h视频在线观看免费 | 久久在线精品视频 | 亚洲一区二区三区日本久久九 | av免费在线观看不卡 | 国产成人77亚洲精品www | 亚洲国产一区二区三区 | 国产羞羞视频 | 日韩电影一区二区三区 | 国产91精品亚洲精品日韩已满 | 激情亚洲一区二区 | 日韩美香港a一级毛片 | 免费日本一区二区 | 亚洲免费毛片基地 | 深夜福利久久久 | 亚洲最新无码中文字幕久久 | 草逼一区 | 精品国产96亚洲一区二区三区 | 91成人免费电影 | av不卡毛片 | 久久久久一区二区三区 | av在线视| 亚洲国产精品久久久久久久久久 | 亚洲5区 | 欧美精品亚洲人成在线观看 | 日韩美香港a一级毛片 | 成人做爰高潮片免费视频韩国 | 91亚洲免费视频 | 无码av女优|