董金穎
摘要:隨著面向?qū)ο蠹夹g(shù)的發(fā)展,MVC的含義和用途變得更加廣泛,本文討論了 MVC模式的結(jié)構(gòu)、設(shè)計(jì)方法,并通過(guò)MVC框架技術(shù)的開(kāi)發(fā)企業(yè)“多元”培訓(xùn)信息化平臺(tái)應(yīng)用實(shí)例,簡(jiǎn)述MVC框架的實(shí)現(xiàn)技術(shù)和優(yōu)缺點(diǎn)。通過(guò)對(duì)上述內(nèi)容的研究,深化對(duì)該系統(tǒng)的認(rèn)識(shí),推進(jìn)該系統(tǒng)的順利應(yīng)用,提升企業(yè)員工培訓(xùn)質(zhì)量及效率,降低員工培訓(xùn)成本。
關(guān)鍵詞:MVC框架 設(shè)計(jì)模式 信息平臺(tái)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)09-0165-01
近年來(lái),企業(yè)級(jí)應(yīng)用系統(tǒng)大多由C/S向B/S開(kāi)發(fā)模式轉(zhuǎn)移,并且早起的WEB開(kāi)發(fā)技術(shù)將業(yè)務(wù)處理邏輯和用戶界面交叉在一起耦合度較高,已經(jīng)不能很好的勝任目前大用戶、大數(shù)據(jù)、高度高效的應(yīng)用需求。MVC框架結(jié)構(gòu)設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫(xiě)業(yè)務(wù)邏輯,解決系統(tǒng)耦合和代碼更改頻繁的問(wèn)題。
1 MVC框架結(jié)構(gòu)
MVC是一種使用MVC(Model View Controller模型-視圖-控制器)設(shè)計(jì)創(chuàng)建Web應(yīng)用程序的模式,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層——模型層、視圖層、控制層。
模型Model是軟件內(nèi)在的抽象類,是包含了核心數(shù)據(jù)結(jié)構(gòu)和邏輯功能的模型,他與系統(tǒng)前臺(tái)相對(duì)獨(dú)立。視圖View是模型的外在表現(xiàn),他從模型是獲得數(shù)據(jù)信息,并且展現(xiàn)在系統(tǒng)前臺(tái)。控制器Controller是開(kāi)發(fā)人員用來(lái)定義界面對(duì)用戶輸入的響應(yīng)方式,他負(fù)責(zé)對(duì)模型中任何變化加以控制,確保用戶視圖和模型之間的對(duì)應(yīng)關(guān)系,協(xié)調(diào)著模型和視圖的工作。
2 系統(tǒng)技術(shù)設(shè)計(jì)
原培訓(xùn)系統(tǒng)由Delphi7和SQL Server開(kāi)發(fā),為C/S模式,必須在同一VLAN段內(nèi)使用,兼容多個(gè)生產(chǎn)系統(tǒng)。為提高培訓(xùn)效率,開(kāi)發(fā)新的培訓(xùn)模式,設(shè)計(jì)采用基于MVC框架對(duì)原有培訓(xùn)系統(tǒng)升級(jí),以原有系統(tǒng)為業(yè)務(wù)原型,由C/S轉(zhuǎn)為B/S,數(shù)據(jù)庫(kù)采用Oracle,開(kāi)發(fā)統(tǒng)一數(shù)據(jù)接口獲取其他生產(chǎn)系統(tǒng)數(shù)據(jù),增強(qiáng)系統(tǒng)的維護(hù)性和可擴(kuò)展性。
系統(tǒng)采用MVC架構(gòu),需要配置WEB服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器,可以看做是三層架構(gòu)的B/S系統(tǒng),但MVC的框架和原三層架構(gòu)有一定區(qū)別,通常所說(shuō)的業(yè)務(wù)邏輯層及是模塊Model,而UI層就是MVC的視圖View,但是MVC提供了讓模型和視圖相分離的思路,引入了控制器這個(gè)概念,把頁(yè)面跳轉(zhuǎn)關(guān)系管理、表單數(shù)據(jù)的封裝及驗(yàn)證、國(guó)際化等任務(wù)交給控制器處理,MVC框架實(shí)現(xiàn)了UI層和業(yè)務(wù)邏輯層最大程度的分離,也就是降低的耦合度。
3 在線職工技能培訓(xùn)平臺(tái)的設(shè)計(jì)
3.1 在線職工技能培訓(xùn)平臺(tái)的功能
(1)自主學(xué)習(xí)功能:包括題庫(kù)的管理,自主學(xué)習(xí)功能,模擬考試功能,隨記抽題,答案順序隨機(jī),自動(dòng)判卷等。
(2)技能實(shí)作平臺(tái):與生產(chǎn)系統(tǒng)和日常操作系統(tǒng)對(duì)接,完全模擬職工日常工作內(nèi)容。
(3)視頻點(diǎn)播功能:職工根據(jù)需求選擇需要學(xué)習(xí)的視頻課程,隨時(shí)可以獲得學(xué)習(xí)服務(wù)。
3.2 數(shù)據(jù)庫(kù)考試題自動(dòng)組卷模塊
在Oracle數(shù)據(jù)庫(kù)中存儲(chǔ)基礎(chǔ)題庫(kù),根據(jù)管理后臺(tái)所設(shè)置的例如分值、題目數(shù)等參數(shù),通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程和包Packages,從原始題庫(kù)中隨機(jī)抽取相關(guān)題目組成一套考試試卷,并將原來(lái)的題目順序、答案順序完全打亂??荚嚪绞筋愃朴隈{校理論筆試的模式。
3.3 統(tǒng)一數(shù)據(jù)接口
由于企業(yè)培訓(xùn)業(yè)務(wù)是包括所有物流和生產(chǎn)鏈的環(huán)節(jié),職工日常工作使用多個(gè)信息系統(tǒng),操作界面和數(shù)據(jù)存儲(chǔ)方式均不一樣。為提高測(cè)評(píng)效率,減少多系統(tǒng)間切換根據(jù)需要,所以建立了通用接口數(shù)據(jù)橋。打通與SQL Server、MySQL系統(tǒng)數(shù)據(jù)庫(kù)的連接,將不同類型的數(shù)據(jù)源轉(zhuǎn)換到專用數(shù)據(jù)庫(kù)中,為培訓(xùn)系統(tǒng)提供基礎(chǔ)支撐。
4 MVC框架的優(yōu)缺點(diǎn)
4.1 MVC框架的優(yōu)點(diǎn)
(1)對(duì)系統(tǒng)應(yīng)用層進(jìn)行分層,使軟件代碼層次結(jié)構(gòu)清晰,有多個(gè)視圖對(duì)應(yīng)一個(gè)模型的功能,減少代碼的復(fù)制量,更減少了后期維護(hù)工作。一旦根據(jù)用戶需求發(fā)生了模型的改變,由于模型返回的數(shù)據(jù)不帶任何顯示格式,因而這些模型也可直接應(yīng)用于接口的使用。
(2)模型具備可移植性,模型是獨(dú)立于視圖,所以可以把一個(gè)模型獨(dú)立地移植到新的平臺(tái)工作。需要做的只是在新平臺(tái)上對(duì)視圖和控制器進(jìn)行新的修改。
(3)整體框架松耦合,視圖層和業(yè)務(wù)層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,改動(dòng)其中一部分,不會(huì)影響到其他部分。
4.2 MVC框架的缺點(diǎn)
(1)MVC框架內(nèi)部原理比較復(fù)雜,沒(méi)有明確的規(guī)范定義,增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性,同時(shí)由于模型和視圖要嚴(yán)格的分離,這樣也給調(diào)試應(yīng)用程序帶來(lái)了一定的困難。每個(gè)構(gòu)件在使用之前都需要經(jīng)過(guò)徹底的測(cè)試,經(jīng)常由于培訓(xùn)系統(tǒng)前臺(tái)視圖的一點(diǎn)更改,無(wú)法通過(guò)控制器正確提取后臺(tái)的模型。
(2)MVC框架不適用中小型軟件開(kāi)發(fā),根據(jù)開(kāi)發(fā)者經(jīng)驗(yàn),在開(kāi)發(fā)培訓(xùn)系統(tǒng)時(shí),由于開(kāi)發(fā)者將一個(gè)應(yīng)用程序分成了三個(gè)部件,對(duì)于簡(jiǎn)單的界面也需要建立完整的模型,造成了過(guò)度的框架性文件,增加了代碼的復(fù)雜度,降低了代碼的可讀性。
參考文獻(xiàn)
[1]施笑南.淺談互聯(lián)網(wǎng)+技術(shù)經(jīng)紀(jì)人在線培訓(xùn)系統(tǒng)設(shè)立的意義[J].經(jīng)濟(jì),2015(10):19-19.
[2]邵繼岑.企業(yè)在線培訓(xùn)常見(jiàn)問(wèn)題與解決策略初探[J].科研,2015(49):308-308.
數(shù)字技術(shù)與應(yīng)用2016年9期