国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

工作任務管理系統中的軟件模式應用

2009-09-05 04:10熊松泉
關鍵詞:設計模式

熊松泉 吳 瓊

摘要:設計模式(Design pattern)是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。文中對MVC模式、單例模式和頁面控制器的概念進行了探討,并在工作任務管理系統進行了實現。

關鍵詞:設計模式 MVC 單例模式 頁面控制器

0 引言

軟件項目開發(fā)的一個難點是用戶需求的變化導致后期功能代碼的擴展和維護,軟件項目管理的一個難點是團隊成員間的協作和溝通。設計模式(Design pattern)是一套被反復使用、多數人知曉的、經過分類編寫的、代碼設計經驗的總結。遵循設計模式的解決方案,有助于功能的擴展和代碼的維護。設計模式是面向對象程序設計的精華,讓對象和對象的關系清晰了起來,使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。設計模式是按場景進行分類,便于團隊間的溝通。本文以工作任務管理系統為例,討論幾種常用軟件模式在信息管理系統開發(fā)中的應用。

1 設計模式分析

1.1 MVC模式 MVC是個將一個應用的實現分成三個組件角色的框架技術:模型,視圖和控制器。①在基于MVC的應用里,Model(模型)是負責保持狀態(tài)的應用組件。這個狀態(tài)通常都持久于數據庫之中(譬如,我們也許會有一個Product(產品)類用來代表SQL中的Products數據表中的訂單數據)。②在基于MVC的應用里,View(視圖)是負責顯示用戶界面的組件。這個UI通常是使用模型數據來創(chuàng)建的(譬如,我們也許會生成一個Product“編輯”視圖,根據當前Product對象的狀態(tài),顯示文本框,下拉框和復選框等)。③在基于MVC的應用里,Controller(控制器)是處理用戶交互,操作模型和最終選擇用哪個視圖來顯示UI的組件。在MVC應用中,視圖只是用來顯示信息而已,是控制器來處理和回應用戶的輸入和交互的。使用MVC方法的一個好處是,它有助于促進應用中模型,視圖,控制器間的關注的清晰分離。保持關注的清晰分離使得對應用的測試極其容易,因為不同應用組件間的契約的定義和表達是更明確的。

1.2 頁面控制器 使用頁面控制器模式接受來自頁面請求的輸入、調用請求對模型執(zhí)行的操作以及確定應用于結果頁面的正確視圖。分隔調度邏輯和所有視圖相關代碼。如果合適,創(chuàng)建用于所有頁面控制器的公用基類,以避免代碼重復并提高一致性和可測試性。頁面控制器可接收頁面請求、提取所有相關數據、調用對模型的所有更新以及向視圖轉發(fā)請求。而視圖又將根據該模型檢索要顯示的數據。定義獨立頁面控制器將分隔模型與Web請求細節(jié)(例如會話管理,或使用查詢字符串或隱藏表單域向頁面?zhèn)鬟f參數)。

1.3 單例模式 單例模式的特點:①單例類只能有一個實例;②單例類必須自己創(chuàng)建自己的唯一實例;③單例類必須給所有其它對象提供這一實例。

Singleton模式包含的角色只有一個,就是Singleton。Singleton擁有一個私有構造函數,確保用戶無法通過new直接實例它。除此之外,該模式中包含一個靜態(tài)私有成員變量instance與靜態(tài)公有方法Instance()。Instance方法負責檢驗并實例化自己,然后存儲在靜態(tài)成員變量中,以確保只有一個實例被創(chuàng)建。

2 工作任務管理系統的設計模式應用

2.1 工作任務管理系統體系結構 工作任務管理系統的體系結構如圖1所示,圖中的箭頭表明了信賴關系。在物理上,DAL是公共的數據訪問入口層,BLL用來封閉業(yè)務實體對象,BIN是經過編譯后的邏輯控制代碼,Web文件夾下是按功能劃分的視圖文件。用戶與《View》下的視圖文件進行交互,控制數據的顯示和接受用戶的輸入;《View》中的數據來源于《Controller》,《Controller》負責維護《View》的狀態(tài)和數據的呈現,以及將《View》傳遞過來的數據對象化,并調用對象方法實現相應的業(yè)務邏輯獲得數據;《Model》中包含實體的集合,對應于業(yè)務規(guī)則,是數據庫表數據和數據增、刪、改、查操作的抽象,實體以類的形式存在,業(yè)務以類方法的形式進行實現,《Model》從業(yè)務規(guī)則的層面處理數據,它是《Controller》數據的供應商。

工作任務管理系統中使用了MVC結構后,在開發(fā)時,項目組成員間職責明確,美工和網頁設計師只需要關注《View》的設計和HTML實現;數據庫設計人員只需要關心數據庫的設計以及數據的轉換規(guī)則;模型人員只需要從業(yè)務的角度關注業(yè)務規(guī)則的實現和從數據庫到實現對象的轉換工作;而程序只需要關注利用模型的業(yè)務規(guī)則控制處理《View》的數據顯示和輸入就可以了。這樣做,非常有利于項目的管理和分工協作。

另外,到了開發(fā)的后期,需求分析的變化,導致業(yè)務規(guī)則的重整,只需要在現在代碼基礎上增加一些實體類就可以了,便于系統的擴展。

2.2 頁面控制器 在工作任務管理系統中,《View》分為兩種,一種是無需授權任何人都可以訪問的頁面,稱之為通用頁;一種是需要用戶登錄,特定用戶才有權訪問的頁面,稱之授權頁?!禫iew》只是簡單的以HTML的方式顯示,由瀏覽器解析,否能訪問由頁面控制器來控制的,即《View》對應的后臺代碼。在默認情況下,所有的布面控制器都繼承于System.Web.UI.Page類,要實現權限控制必須在所有的頁面控制添加控制代碼,這用做非常的麻煩,而且不利于代碼的后期修改和擴展。針對于這種需求,頁面控制器設計模式提供了一種非常好的解決方案,如圖2所示。

定義一個基類BasePage,繼承于System.Web.UI.Page,是系統中所有頁面控制器的基礎;從BasePage下派生出GenPage和AuthPage兩個類,分別用作于通用頁和授權頁的父類。在授權頁的構造函數中,實現OnLoad事件的訂閱,在OnLoad的事件處理程序中添加權限控制代碼,所有的授權頁都從AuthPage派生出來,這樣在派生頁控制器中,就無需寫權限控制代碼了。在后期代碼的擴展過程中,只需有修改父類的代碼就可以,而不是每個頁控制器的代碼。

2.3 單例的數據連接對象 數據連接是系統中非常寶貴的資源,如果一個數據庫系統中存在著多個連接對象,并且這些對象沒有及時釋放,系統的性能將會急劇下降。一個好的設計是,在一個系統中數據連接應該是唯一的,單例的,如圖3所示。Cnn是DBAccess的一個靜態(tài)成員,并在靜態(tài)構造函數實例化。這樣,不論DBAccess有多少個對象,數據連接對象便只有一個了。

3 結論

設計模式是設計經驗的總結,在系統設計過程中合理地使用一些經典的設計模式,是十分有利于系統功能的擴展和代碼復用的。在工作任務管理系統中,MVC模式使得系統的結構清晰,有利團隊的分工合作;頁面控制器模式降低了代碼的冗余度,提高了代碼的重用性,方便了功能的擴展;單例模式實現了數據連接的唯一性,提高了系統的性能。

參考文獻:

[1]鐘金琴,辜麗川.一種面向對象的軟件設計模式庫的設計.計算機技術與發(fā)展[J],2008.(9):22.

[2]Microsoft,表示層設計模式:Page Controller(頁面控制器)[OL]. http://www.uml.org.cn/sjms/200812302.asp,2008-12-30.

猜你喜歡
設計模式
“1+1”作業(yè)設計模式的實踐探索
設計模式挖掘的有效性評估策略
三維協同設計模式下的航天項目管理實踐與展望
交通機電工程設計模式創(chuàng)新探討
基于“雙師制”指導下的工業(yè)設計專業(yè)畢業(yè)設計模式
互動式設計模式研究