亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

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模式會使得你的應用更加強壯,更加有彈性,更加個性化。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品ady| 精品一区二区电影| 亚洲一区二区中文字幕| 国产精品亚洲一区二区三区| 欧美日韩美女在线| 欧美高清在线播放| 国产精品夫妻激情| 国产精品老女人精品视频| 国产精品一区二区三区毛片淫片| 国产久一一精品| 国产精品久久久久久久久久小说| 久久精品电影网| 亚洲a中文字幕| 91精品国产综合久久男男| 欧美另类69精品久久久久9999| 欧美成人中文字幕在线| 国产一区二区三区视频免费| 国产精品视频导航| 丝袜美腿亚洲一区二区| 久久久噜噜噜久久| 欧美精品一区二区三区国产精品| 国产成人aa精品一区在线播放| 国产va免费精品高清在线观看| 在线视频亚洲欧美| 国产成人涩涩涩视频在线观看| 亚洲精品中文字幕av| 欧美日韩国产二区| 亚洲已满18点击进入在线看片| 国产精品一区av| 国产精品久久久久久搜索| 欧美性猛交xxxx免费看久久久| 91精品国产高清| 欧美巨乳美女视频| 一本色道久久综合狠狠躁篇的优点| 一本色道久久88综合亚洲精品ⅰ| 欧美激情久久久久| 国产视频999| 久久免费国产视频| 色悠悠久久88| 成人在线中文字幕| 欧美在线一级va免费观看| 久久五月情影视| 国产精品欧美一区二区三区奶水| 狠狠做深爱婷婷久久综合一区| 91精品国产91久久久久久久久| 成人写真视频福利网| 国产一区二区香蕉| 久热精品视频在线免费观看| 2018中文字幕一区二区三区| 亚洲人成绝费网站色www| 成人av在线天堂| 最近中文字幕2019免费| 亚洲人午夜精品| 韩国19禁主播vip福利视频| 久久精品视频中文字幕| 中文字幕一区日韩电影| 色yeye香蕉凹凸一区二区av| 亚洲已满18点击进入在线看片| 久久综合久中文字幕青草| 欧美日韩国产限制| 国产精品91免费在线| 777国产偷窥盗摄精品视频| 乱亲女秽乱长久久久| 国语自产精品视频在线看一大j8| 亚洲第一天堂av| 国产亚洲精品美女久久久久| 国产精品美女www| 欧美国产极速在线| 日韩亚洲国产中文字幕| 国产精品久久久久久久久免费| 久久91精品国产| 亚洲电影天堂av| 国产精品久久久久久久美男| 亚洲精品av在线| 国产成人精品久久亚洲高清不卡| 国内成人精品视频| 国产成人精品在线视频| 欧美大片在线看免费观看| 欧美在线视频一区二区| 国产精品视频色| 欧美黄色片在线观看| 欧美一区二区三区图| 在线亚洲午夜片av大片| 亚洲视频999| 久久天天躁夜夜躁狠狠躁2022| 国产精品xxx视频| 欧美日韩国产综合视频在线观看中文| 成人午夜在线视频一区| 日韩中文字幕免费| 亚洲图片在区色| 中文在线资源观看视频网站免费不卡| 日韩欧美黄色动漫| 国产精品视频99| 51精品国产黑色丝袜高跟鞋| 中文字幕亚洲情99在线| 日韩精品极品毛片系列视频| 国产精品入口福利| 91精品久久久久久| 在线播放国产一区中文字幕剧情欧美| 亚洲精品电影网站| 亚洲自拍偷拍福利| 欧美性猛交xxxxx免费看| 国产精品jvid在线观看蜜臀| 91影院在线免费观看视频| 欧美日韩国产中文精品字幕自在自线| 国产精品福利网站| 福利视频第一区| 欧美猛男性生活免费| 久久噜噜噜精品国产亚洲综合| 亚洲欧洲高清在线| 欧美电影免费观看高清完整| 亚洲最新视频在线| 在线精品高清中文字幕| 免费99精品国产自在在线| 中文字幕国产亚洲2019| 有码中文亚洲精品| 日韩在线精品一区| 日韩不卡在线观看| 日本不卡高字幕在线2019| 国产精品视频色| 亚洲免费精彩视频| 日本久久亚洲电影| 久久久亚洲欧洲日产国码aⅴ| 精品自拍视频在线观看| 国产精品一区二区三区毛片淫片| 亚洲精品动漫久久久久| 中文字幕在线国产精品| 亚洲国产天堂网精品网站| 日韩在线播放一区| 国产精品欧美亚洲777777| 青青草成人在线| 国产欧美精品久久久| 日韩av电影中文字幕| 亚洲精品国产精品国自产观看浪潮| 国产男女猛烈无遮挡91| 日韩成人性视频| 国产ts人妖一区二区三区| 神马久久久久久| 欧美成人激情视频免费观看| 国产精品欧美一区二区三区奶水| 91免费综合在线| 久久九九免费视频| 成人美女免费网站视频| 欧美成人精品不卡视频在线观看| 国内精品久久久久久中文字幕| 久久久久久久999精品视频| 欧美日韩国产一区在线| 亚洲专区中文字幕| 欧美国产精品日韩| 一区二区三区视频观看| 91精品国产91久久久久久| 91av国产在线| 国模叶桐国产精品一区| 亚洲乱码国产乱码精品精天堂| 国产欧美日韩亚洲精品| 亚洲最大的成人网| 欧美电影在线播放| 亚洲精品一区二三区不卡| 日韩欧美高清在线视频| 国产美女扒开尿口久久久| 97超级碰在线看视频免费在线看| 国产欧美中文字幕| 91午夜理伦私人影院| 国产拍精品一二三|