首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實用文檔 繽紛校園 英語學(xué)習(xí)
2010考研 | 自學(xué)考試 | 成人高考 | 專 升 本 | 法律碩士 | MBA/MPA | 中 科 院
四六級 | 商務(wù)英語 | 公共英語 | 職稱日語 | 職稱英語 | 博思 | 口譯筆譯 | GRE GMAT | 日語 | 托福
雅思 | 專四專八 | 新概念 | 自考英語 | 零起點英、、、韓語 | 在職申碩英語
在職攻碩英語 | 成人英語三級
等級考試 | 水平考試 | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
公務(wù)員 | 報關(guān)員 | 報檢員 | 外銷員 | 司法考試 | 導(dǎo)游考試 | 教師資格 | 國際商務(wù)師 | 跟單員
單證員 | 物流師 | 價格鑒證師 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 人力資源管理師 | 管理咨詢師
期貨從業(yè)資格 | 社會工作者
會計職稱 | 注會CPA | 經(jīng)濟(jì)師 | 統(tǒng)計師 | 注冊稅務(wù)師 | 評估師 | 精算師 | 高會 | ACCA | 審計師
法律顧問 | 會計證
一級建造師 | 二級建造師 | 造價師 | 監(jiān)理師 | 安全師 | 咨詢師 | 結(jié)構(gòu)師 | 建筑師 | 安全評價師
房地產(chǎn)估價師 | 土地估價師 | 設(shè)備監(jiān)理師 | 巖土工程師 | 質(zhì)量資格 | 房地產(chǎn)經(jīng)紀(jì)人 | 造價員
投資項目管理 | 土地代理人 | 環(huán)保師 | 環(huán)境影響評價 | 物業(yè)管理師 | 城市規(guī)劃師 | 公路監(jiān)理師
公路造價工程師 | 招標(biāo)師
執(zhí)業(yè)護(hù)士 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 衛(wèi)生資格
您現(xiàn)在的位置: 考試吧(Exam8.com) > 軟件水平考試 > 系統(tǒng)分析師 > 正文

MVC設(shè)計模式在通用報表系統(tǒng)中的應(yīng)用

 摘要 通用報表系統(tǒng)設(shè)計運用模型-視圖-控制器設(shè)計模式構(gòu)造客戶端報表視圖與報表數(shù)據(jù)間的協(xié)作模型,將報表框架與報表數(shù)據(jù)分離,用戶能根據(jù)處理需要自定義報表式樣和指定數(shù)據(jù)源,系統(tǒng)自動生成所需要的報表。給出它們各自在報表系統(tǒng)設(shè)計中的應(yīng)用范例。

  關(guān)鍵字 報表系統(tǒng);設(shè)計模式;數(shù)據(jù)異構(gòu);多窗口支持;模型-視圖-控制器

  1 引言

  傳統(tǒng)報表系統(tǒng),通常是針對某個商業(yè)領(lǐng)域使用,其使用的報表格式往往在設(shè)計時由設(shè)計人員已經(jīng)定做成模版的形式存儲在模版庫中,用戶使用時直接從模版庫讀取,處理方式也僅限于該領(lǐng)域內(nèi);雖然在一定程度上該解決方法帶來了一定管理上的便宜,可對于現(xiàn)代企業(yè)用戶來說,報表格式單一已經(jīng)局限了報表只能作為記賬簿來使用,使得報表的可塑性差,后期維護(hù)艱難,難以適應(yīng)生產(chǎn)過程的多樣性和變化性,無法滿足大型企業(yè)不斷擴(kuò)充的適應(yīng)性、智能型的要求,特別是當(dāng)業(yè)務(wù)領(lǐng)域變化時,原有的報表系統(tǒng)往往很難支持新業(yè)務(wù)數(shù)據(jù)的管理分析,要進(jìn)行大量的重新開發(fā)工作。

  在本通用報表的設(shè)計中,將報表框架與報表數(shù)據(jù)分離開,用戶即能根據(jù)自己的需要隨意繪制表格,又能按照業(yè)務(wù)要求自主的選擇數(shù)據(jù)。一旦框架和數(shù)據(jù)定義完畢,系統(tǒng)可以自動生成所需要的報表。為了經(jīng)濟(jì)的達(dá)到方便使用的目的,必須吸收先進(jìn)的軟件開發(fā)思想,采用優(yōu)秀的軟件開發(fā)方法以提高軟件質(zhì)量和軟件的重用性,其中提高軟件的重用性是減少開發(fā)成本的關(guān)鍵。

  主要介紹MVC設(shè)計模式在通用報表系統(tǒng)開發(fā)中的應(yīng)用,給出了具體問題相應(yīng)的解決辦法,提高了軟件的通用性和擴(kuò)展性。

  2 設(shè)計模式

  設(shè)計模式是設(shè)計面向?qū)ο筌浖倪^程中記錄的知識和經(jīng)驗,用一系列類結(jié)構(gòu)和對象來具體描述其含義。設(shè)計模式的目的就是復(fù)用這些面向?qū)ο笤O(shè)計的解決方案,根據(jù)具體應(yīng)用完成具體的設(shè)計以及便于這些抽象解決方案的積累和交流。與不使用設(shè)計模式的軟件系統(tǒng)相比,一個大量使用設(shè)計模式的軟件系統(tǒng)的對象建模更加合理,對象間的耦合度更小,效率、可靠性、可升級性、并發(fā)性、平行性和分布性更高,更能獲得高層次的設(shè)計復(fù)用和代碼復(fù)用。

  設(shè)計模式概念最先來自于城市建筑專家對建筑模式的定義“每一個模式描述了在人們周圍不斷反復(fù)發(fā)生的問題,以及該問題的解決方案的核心。這樣,你就能一次又一次的使用該方案而不必做重復(fù)勞動”。這種建筑上的模式思想在面向?qū)ο蟮脑O(shè)計模式中同樣適用,模式的核心就在于提供了相關(guān)問題的解決方案。設(shè)計模式確定了所包含的類和實例,它們的角色、協(xié)作方式以及職責(zé)分配。它通過刻畫部件靜態(tài)和動態(tài)結(jié)構(gòu)及其之間的合作關(guān)系,成功地應(yīng)用于解決商業(yè)數(shù)據(jù)處理、電子通信、圖形用戶界面、數(shù)據(jù)庫、分布式通信軟件等軟件構(gòu)造中的問題。

  一般而言,設(shè)計模式有4個要素:①模式名稱:用來描述問題、解決方案和效果。②問題:描述可以在什么時候使用設(shè)計模式。③解決方案:描述了設(shè)計模式的組成部分,它們之間的相互關(guān)系及各自的職責(zé)和協(xié)作方式。④效果:描述了模式應(yīng)用的效果及使用模式應(yīng)該權(quán)衡的問題。一個設(shè)計模式命名抽象確定了一個通用設(shè)計結(jié)構(gòu)的主要方面,這些設(shè)計結(jié)構(gòu)能用來構(gòu)造可重用的面向?qū)ο笤O(shè)計。

  我們在報表系統(tǒng)中主要使用了模型-視圖-控制器設(shè)計模式(MVC)、觀察者(Observer)、適配器模式(Adapter)以及橋接(Bridge)這幾種設(shè)計模式。

  3 設(shè)計模式的應(yīng)用

  

  報表系統(tǒng)中為了方便用戶對數(shù)據(jù)的分析和使用,同一業(yè)務(wù)數(shù)據(jù)常常需要多種視圖呈現(xiàn),即一個表格對象和一個柱狀圖對象可使用不同的表示形式描述同一個應(yīng)用數(shù)據(jù)對象的消息。表格對象和柱狀對象并不知道對方的存在,這樣使用戶可以根據(jù)需要單獨復(fù)用表格或柱狀圖;當(dāng)用戶改變比表格中的信息時,柱狀圖能立即反映這一變化,這一行為意味著表格和柱狀圖都依賴于數(shù)據(jù)對象。早期的圖形化程序設(shè)計常常圍繞著事件驅(qū)動的用戶界面來組織,這樣的直接后果就是數(shù)據(jù)處理、程序功能與顯示代碼完全糾結(jié)在一起。大型的圖形化程序中一個數(shù)據(jù)通常對應(yīng)多種表示與處理方式,把特定界面綁定到應(yīng)用程序上嚴(yán)重降低了程序的靈活性,使得一個很小的改動也牽扯到大量的代碼,增加了程序開發(fā)與維護(hù)的工作量。20世紀(jì)70年代,MVC模式在small talk 80的GUI設(shè)計中被提出,并且描述了不同部分的對象之間的通信方式,使它們不必卷入彼此的數(shù)據(jù)模型開發(fā)方法中,使程序結(jié)構(gòu)變得清晰而靈活。

  MVC模式包括三個部分:模型(Model)、視圖(View)和控制器(Controller),分別對應(yīng)于內(nèi)部數(shù)據(jù)、數(shù)據(jù)表示和輸入輸出控制部分。模型是與問題相關(guān)數(shù)據(jù)的邏輯抽象,代表對象的內(nèi)在屬性,是整個模型的核心。它采用面向?qū)ο蟮姆椒,將問題領(lǐng)域中的對象抽象為應(yīng)用程序?qū)ο螅谶@些抽象的對象中封裝了對象的屬性和這些對象所隱含的邏輯。視圖是模型的外在表現(xiàn),一個模型可以對應(yīng)一個或者多個視圖,如圖形用戶界面視圖、命令行視圖、API視圖;或按使用者分類:新用戶視圖、熟練用戶視圖等。視圖具有與外界交互的功能,是應(yīng)用系統(tǒng)與外界的接口:一方面它為外界提供輸入手段,并觸發(fā)應(yīng)用邏輯運行;另一方面,它又將邏輯運行的結(jié)果以某種形式顯示給外界。控制器是模型與視圖的聯(lián)系紐帶,控制器提取通過視圖傳輸進(jìn)來的外部信息,并將用戶與View的交互轉(zhuǎn)換為基于應(yīng)用程序行為的標(biāo)準(zhǔn)業(yè)務(wù)事件,再將標(biāo)準(zhǔn)業(yè)務(wù)事件解析為Model應(yīng)執(zhí)行的動作(包括激活業(yè)務(wù)邏輯或改變Model的狀態(tài))。同時,模型的更新與修改也將通過控制器來通知視圖,從而保持各個視圖與模型的一致性。

  實現(xiàn)MVC模式時面對的主要問題是Model和View的關(guān)系,在設(shè)計模式中的Observer模式很好的描述了如何建立這種關(guān)系。這一模式中關(guān)鍵的對象是目標(biāo)(subject)和觀察者(observer)。一個目標(biāo)可以有多個依賴它的觀察者;一旦目標(biāo)發(fā)生變化,所有依賴它的觀察者都得到通知,并做出響應(yīng),即每個觀察者都將查詢目標(biāo)進(jìn)行更新,以保證和目標(biāo)的狀態(tài)同步。這種模式允許我們獨立的改變目標(biāo)和觀察者;用戶可以單獨復(fù)用目標(biāo)對象而無需同時復(fù)用其觀察者,反之亦然。這種模式可以在不改動目標(biāo)和其他觀察者的前提下增加觀察者。

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索
MVC設(shè)計模式在通用報表系統(tǒng)中的應(yīng)用網(wǎng)友評論網(wǎng)友評論
版權(quán)聲明 --------------------------------------------------------------------------------------
    如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。
 gaoxiaoliang