999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MVC的Web框架設計與應用

2021-03-31 08:56:38亓雪冬韓立峰
微型電腦應用 2021年3期
關鍵詞:設計

亓雪冬, 韓立峰

(中國石油大學(華東)信息化建設處, 山東 青島 266580)

0 引言

隨著Web業務需求的不斷增長,MVC設計模式和基于MVC的Web框架被持續研究和關注,如冉啟武等[1]設計了基于MVC模式的教學管理電子信息系統;張翠翠等[2]研究了基于MVC的試卷生成及主觀題判卷算法;王俊芳等[3]研究和應用了基于MVC模式的ThinkPHP框架;Majida Laaziri等[4]評估了Laravel、Smfony和CodeIgniter三種PHP Web框架并對其性能進行了測試;Andri Sunardi等[5]對比了Laravel和Slim兩種PHP Web框架并研究了在自由職業者項目監控系統中的應用效果。眾多研究表明,MVC模式通過對應用的分層和解耦,減少了架構設計的復雜性,增加了代碼的靈活性和可重用性;而MVC Web框架通過提供基礎框架模型和類庫,減少了Web應用開發中的重復代碼,提高了開發效率和可維護性。

本文在研究MVC設計模式的基礎上,分析了Web應用的一般性需求,提出了MVC Web框架的設計思路,并基于該框架設計實現了程序設計實訓Web系統。

1 MVC設計模式

MVC設計模式最初于上世紀80年代誕生于Smalltalk語言中,近年來被廣泛應用于Java EE、Web等平臺的軟件開發中。MVC全稱為Model-View-Controller,Model指數據模型,View指視圖(用戶界面),而Controller則指控制器。MVC的目的是將Model和View分離,從而使同一個程序可以使用不同的表現形式。MVC強制使應用程序的輸入、處理和輸出分開設計,將程序主體分離為模型、視圖、控制器3個核心部件,實現功能的解耦。模型-視圖-控制器三者間的關系,如圖1所示。

圖1 MVC架構示意圖

控制器接受用戶的輸入并調用模型和視圖去完成用戶的需求,它本身不做任何處理,也不輸出任何數據。單擊Web頁面中的超鏈接和發送HTML表單時,它只是接收請求并決定調用哪個模型去處理請求,然后再確定用哪個視圖來顯示返回的數據,相當于模型和視圖的粘合邏輯。

模型表示數據和業務規則,它返回的數據是中立的,與數據格式無關,因此一個模型能夠為多個視圖提供數據,減少了代碼的重復性。

視圖為用戶提供一種展示和操作數據的方式。不同的視圖代表多個不同的用戶界面。實際的處理操作發生在模型部分而不是視圖部分。在Web應用程序,視圖通常由HTML元素、模板標記語言以及模型返回的數據共同組成。

2 基于MVC的Web框架設計

2.1 整體架構

本文設計的Web框架遵循MVC設計模式,核心類包括控制器基類Controller、模式基類Model、用于生成視圖的模板類Template和工具類Request。整體架構,如圖2所示。

圖2 整體架構設計圖

控制器基類Controller邏輯上依賴于類Model和類Template,內部包含了Model和Template的實例,其目的是粘合這兩個類的功能,選擇合適的Model獲取數據,并選擇合適的模板生成視圖。模式基類Model包含了操縱數據的基本業務邏輯,如查找、保存、更新和刪除數據等方法。模板類Template內部封裝了第三方的模板引擎Smarty,實現內存數據到HTML格式視圖的轉換。工具類Request實現了Web請求數據的封裝、請求的派發等功能,將Web請求轉發到指定的控制器。

該架構將Controller與Model的業務邏輯層作為應用的主要開發區域,上層應用程序只需繼承Controller和Model,根據業務實際需求實現對應子類UserControl和UserModel,即可完成業務邏輯開發。

2.2 Web請求入口設計

index.php為Web請求的入口地址。Web請求到達后,index.php首先將Web請求中攜帶的各種數據進行封裝以便后續使用;接下來將Web請求派發到指定控制器,由控制器完成對請求的后續處理。

Requset:: dispatch()方法實現了控制器調度,其思路為:

(1) 從Web請求的Get數據中提取ct和ac兩個參數的值,這兩個參數表示執行處理的控制器Controller以及控制器的具體操作Action;

(2) 將預設的控制器文件目錄、上一步操作中提取的控制器名稱以及字符串“.php”三部分合成控制器類文件完整路徑,使用require語句包含該控制器類;

(3) 創建該控制器的實例,并調用實例中參數ac所指的Action方法,完成控制器調度。

2.3 控制器設計

控制器設計包含兩個層次,Controller基類和UserController子類。基類中包含Model和Template的實例,方便粘合模式和視圖。但基類中并未實現任何Action方法,這部分留給子類根據業務邏輯具體實現。

2.4 視圖模板設計

控制器完成業務邏輯后,將調用模板類Template,將返回的數據和指定的模板合成視圖,向用戶展示Web應用界面。Template類基于第三方的模板引擎Smarty,模板文件使用Smarty的語法,擴展名為tpl。Template類公開了assign和display兩個方法,assign將控制器返回的數據替換入模板,display根據模板語言對模板進行解釋,生成最終的視圖。

2.5 模式設計

模式的設計圍繞操縱和處理數據展開。在業務系統中,數據表現為關系數據庫中的關系(表);然而在軟件設計中,數據表現為內存中的對象。為了實現關系與內存對象之間的數據轉換,本文在模式層設計了輕量級、可擴展的對象-關系映射(Object/Relation Mapping,簡稱ORM)機制,相關設計類,如圖3所示。

圖3 模式部分類圖

DbManager是直接操縱數據庫的抽象基類,connect屬性表示數據庫連接對象,config屬性表示數據庫配置字符串,getData方法用于執行Select語句返回數據,runSql方法用于執行Insert、Delete、Update等SQL語句。子類MySQL和SQLServer是DbManager針對這兩種常用數據庫的具體實現,這使得模式可以支持多種數據庫。

3 Web框架的應用

基于MVC Web框架,筆者設計實現了程序設計實訓Web系統。實訓課程中,學生需要小組合作共同完成一個實訓項目,一個小組提交一份電子作業,教師根據小組中每個成員的工作量來評定成績。根據項目需求,系統核心功能確定為用戶管理、小組管理和作業管理3個主要模塊。用戶管理模塊主要提供注冊、登錄和賬號管理等功能;小組管理模塊主要提供小組的建立和刪除、小組查詢、組員加入和退出等功能;作業管理模塊中,面向教師的功能為作業發布、作業批改和成績導出,面向組長的功能為接收作業、分配子任務和提交作業,面向組員的功能為接收子任務、提交子任務等。

上文設計的MVC Web框架提供了支撐Web系統的關鍵基礎功能,并且將系統邏輯結構劃分為模式、視圖和控制器三部分,開發時只需對各部分進行必要的擴展和補充即可,這種方式極大簡化了Web系統的開發。

在控制器方面,針對用戶管理、小組管理和作業管理等模塊分別實現了UsersController、TeamsController和Projects Controller3個控制器子類。每個控制器內部可實現了一系列Action(功能),如用戶管理控制器UsersController,內部實現了UserRegister、UserLogin、RemoveUser、EditUser等Action。Web請求中,通過指定ct(Controller)和ac(Action)兩個參數,可以調用指定控制器的指定功能,處理用戶請求。

對于每一個Action,均要設計與之匹配的專用模式子類。模式子類繼承自Model父類,提供了處理和訪問此Action所需的特定數據的能力。例如對于登錄Action和分配子任務Action,分別設計了LoginModel和SubtaskModel兩個子類,LoginModel用于處理登錄相關數據,SubtaskModel用于處理子任務劃分相關數據。

另外還需為每一個Action設計對應的視圖模板,以展示用戶界面。例如對于登錄Action和分配子任務Action,分別設計了Login.tpl和SubtaskModel.tpl兩個視圖模板。這兩個Action的用戶界面,如圖4所示。

圖4 程序設計實訓Web系統部分界面(上圖為登錄界面,下圖為分配子任務界面)

4 總結

MVC設計模式通過將應用程序分離為模式-視圖-控制器3個部分,實現了對應用的分層和解耦,提高了軟件設計的靈活性。分層結構使得MVC具有耦合性低、重用性高、便于部署、易于測試等優點。本文基于MVC模式自主設計開發了一套高效率、可擴展的輕量級Web框架,并在該框架的基礎上設計實現了程序設計實訓Web系統。實踐表明,本文的MVC Web框架為Web應用開發提供了關鍵技術支撐,簡化了開發工作,提高了開發效率,增強了應用系統的穩定性和可靠性。

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 黄色网页在线播放| 亚洲欧美日韩中文字幕一区二区三区| 欧美a级在线| 亚洲精品动漫在线观看| 国产成人精品18| 日韩性网站| 色噜噜狠狠狠综合曰曰曰| 中文精品久久久久国产网址| 亚洲精品成人福利在线电影| 毛片在线区| 免费无码又爽又刺激高| 国产手机在线ΑⅤ片无码观看| 中国国产高清免费AV片| 激情无码视频在线看| 久久精品人人做人人爽97| 夜色爽爽影院18禁妓女影院| 青青青伊人色综合久久| 91极品美女高潮叫床在线观看| 亚洲无码高清一区二区| 日韩成人高清无码| 精品国产www| 亚洲欧洲日韩久久狠狠爱| 色网站免费在线观看| 午夜在线不卡| 国产国语一级毛片| 久久a级片| 欧美亚洲日韩不卡在线在线观看| 手机在线看片不卡中文字幕| 欧美在线精品怡红院| 日韩福利视频导航| 57pao国产成视频免费播放 | 2018日日摸夜夜添狠狠躁| 精品超清无码视频在线观看| 免费视频在线2021入口| 中文字幕永久在线观看| 欧美日韩精品在线播放| 夜夜高潮夜夜爽国产伦精品| 日韩不卡高清视频| 国产v精品成人免费视频71pao| 久久人妻系列无码一区| 露脸一二三区国语对白| 欧美精品1区2区| 国产综合亚洲欧洲区精品无码| 999国内精品久久免费视频| 福利一区在线| 国产毛片不卡| 亚洲中文字幕精品| 东京热高清无码精品| 超清无码熟妇人妻AV在线绿巨人| 一边摸一边做爽的视频17国产| 午夜视频免费试看| 日韩第一页在线| 久久人搡人人玩人妻精品 | 熟妇无码人妻| 国产毛片片精品天天看视频| 九九九久久国产精品| 天堂成人在线视频| 亚洲欧美综合另类图片小说区| 国产一级毛片网站| 国产成人综合日韩精品无码不卡| 日韩国产一区二区三区无码| 免费AV在线播放观看18禁强制| 国产成人超碰无码| 久久香蕉国产线看观看式| 国产欧美高清| 亚洲人成色77777在线观看| 九九热这里只有国产精品| 无码啪啪精品天堂浪潮av| 欧美精品成人一区二区在线观看| 免费毛片网站在线观看| 国产97公开成人免费视频| 三级视频中文字幕| 午夜福利亚洲精品| 亚洲男女在线| 中国毛片网| 精品久久综合1区2区3区激情| 久久不卡国产精品无码| 久久影院一区二区h| 99激情网| 国产女人在线| 亚洲精品成人福利在线电影| 国产三区二区|