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

Factory和Facade優化模式體系的研究及應用

2008-12-31 00:00:00陳祖爵湯克明
計算機應用研究 2008年12期

(1.鹽城師范學院 信息科學與技術學院, 江蘇鹽城 224002; 2.江蘇大學 計算機科學與通信工程學院, 江蘇

鎮江 212013)

摘 要:

提出了一種優化模式的多層架構體系,詳細分析了Pet Shop的典型三層架構及使用的Factory模式、Duwamish的多層架構及使用的Facade模式,比較兩者不足,綜合各自優勢,提出目標系統開發架構,更側重于優化架構的設計、系統具體的實現以及各層解決方案的提出,旨在為網絡信息系統開發提供參考及新思路。

關鍵詞:工廠模式; 外觀模式; 復合架構

中圖分類號:TP311 文獻標志碼:A

文章編號:10013695(2008)12383203

Research and application of optimized pattern architecture of Factory and Facade

ZHANG Hui1, CHEN Zujue2, TANG Keming1

(1.School of Information Science Technology,Yancheng Teachers University, Yancheng Jiangsu 224002, China; 2.School of Computer Science Telecommunication Engineering, Jiangshu University, Zhengjiang Jiangsu 212013, China)

Abstract:Proposed a optimized pattern multilayer framework based on PetShop and Duwamish, which combined the advantages of Factory and Facade models.This dissertations emphasized particularly on designing on optimized architecture, realizing system and proposing solution on system every layerthat aimed to supplying reference and fresh way for developing NMIS.

Key words:factory pattern; facade pattern; compound architecture



軟件體系結構在系統的設計、維護方面帶來的巨大貢獻已經非常明顯。最初的架構設計決定著軟件產品的生死存亡,軟件體系結構與主流軟件開發方法的結合能夠提高軟件重用的抽象層次及軟件的開發效率。當前,在國內外存在多種實現Web應用系統的技術途徑。其中最具有代表性、使用最廣泛的平臺開發技術是Microsoft公司提出的.NET平臺。

1 .NET 3.0 

由于.NET 2.0和3.0共享同樣的CLR,在.NET 2.0中編寫的任何程序均可以運行于.NET 3.0中,這是與以前版本的一個重要而顯著的區別。它們之間的關系可以總結為

.NET 3.0 = .NET 2.0 + WCF + WPF + WCS + WF 

其中:WCF (Windows communication foundation)為基于Windows平臺下開發和部署服務的軟件開發包(software development kit,SDK);WF (Windows workflow) 是一個企業級工作流開發框架和引擎,它首次將聲明性工作流引向主流;WPF (Windows presentation foundation) 彌合在游戲和娛樂產業中常見的身臨其境的用戶體驗和在業務軟件世界中靜態又難用的界面之間的差距;WCS (Windows card spaces) 創建了一個身份標志元系統,能顯著改善在組織內部和組織之間的企業身份管理的方式。 

2 設計模式

2. 1 Factory pattern(工廠模式)

基本思想:工廠方法定義創建對象的接口,并由派生類決定哪一個類來創建對象。

適用場合:當一個類無法事先知道它所必須創建的對象類時;當一個類要讓其派生類決定構建對象時;當類將創建對象的職責委托給多個協助它的派生類之一,同時希望通過所委托的派生類來集中管理對象創建邏輯時。

參與者包括:

a)抽象產品。定義工廠方法所構建產品對象的接口,是具體產品類的共同基類或共有接口。

b)具體產品。它是實現抽象產品對象的接口,也是工廠方法最終創建的產品實例。

c)抽象工廠。聲明工廠方法,該方法返回特定的產品對象。它也可以定義一個缺省的工廠方法實現并返回缺省的產品對象。

d)具體工廠。它是實現抽象工廠接口的具體類,即通過覆蓋工廠方法并返回具體產品的實例。

2. 2 Facade pattern (外觀模式)

基本思想:外觀模式是指外部用戶對象通過一個統一的門面對象來與一個子系統進行交互。

適用場合:為一個復雜的系統提供一個簡單的接口;客戶程序與抽象類的實現部分之間存在很大的依賴性。引入門面層將這個子系統與客戶以及其他的子系統分離,可以提高子系統的獨立性和可移植性。當需要構建一個層次結構的子系統時,使用門面模式定義子系統中每層的入口。在分布式系統中,為了減少客戶端進行遠程調用的次數。

參與者包括:

a)外觀。外觀對象是一個協調者,它知道哪一個子系統類要響應哪些請求,能實現哪些功能。它負責將客戶端請求委托給適當的子系統對象。

b)子系統。負責實現子系統的功能,它們既可以被門面對象調用,也可以被客戶直接調用。

3 優化模式體系的設計

架構是系統的基本組成結構,具體表現為組件、組件之間的相互關系、組件與運行環境的關系,管理其設計和演變的原則。架構的提法是建立在應用的系統設計層面,是面向系統分析而言的,是純軟件的,面向編寫程序的N層架構,其劃分的各個層次均為軟件層次。

3. 1 Pet Shop體系結構

Pet Shop是微軟件公司開發基于.NET平臺下的一個典型的三層服務應用體系結構實例。其結構如圖1所示。

3. 2 Duwamish體系架構

Duwamish是微軟提供的一個企業級的分布式系統架構實例。其架構共分成四層:Web層(presentation),為客戶端提供對應用程序的訪問;業務外觀層(business facade),為 Web層提供處理賬戶、類別瀏覽和購書的界面;業務規則層(business rules),作為 Duwamish.sln解決方案文件中的 BusinessRules項目實現,它包含各種業務規則和邏輯的實現;數據訪問層(data access),為業務規則層提供數據服務,它是作為 Duwamish.sln解決方案文件中的DataAccess項目實現。

Duwamish體系結構如圖2所示。其中箭頭應解釋為“…使用…”,如“數據訪問子系統正在使用系統框架子系統”。

3. 3 復合架構的設計與實現

PetShop與Duwamish兩種架構分別實現了Factory模式與Facade模式。在實際應用中,兩者均具備相應的優勢,但是面對企業級應用的復雜環境,兩者又存在各自的不足。在實際項目開發中,如果完全遵照兩個示例的技術架構,或多或少都會遇到問題。為此,整合兩種架構和模式,集中兩者優勢,提出基于Factory與Facade優化模型體系的建構(圖3)。

1)Web層 客戶端提供對應用程序的訪問。

2)業務外觀層采用Facade模式,為Web層提供處理賬戶、類別瀏覽和查詢等界面,將用戶界面與各種業務功能的實現隔離開,增加系統可維護性、可擴展性(圖4)。

3)對象實體層(commo data) 主要存儲在應用程序各層之間傳遞數據的瘦數據類或業務實體。

4)業務邏輯層(business system) 包含各種業務規則和邏輯的實現。這也是主要業務對象所在的位置,它們實現業務實體或系統對象。系統的業務規則將在這些對象中編碼,盡管部分業務規則可能實際上已在數據庫的存儲過程中進行了編碼。

5)數據訪問層(data access) 訪問后端數據庫的功能采用Pet Shop與Duwamish架構相結合的方式。由于目標系統數據處理量較大,層間的數據傳輸采用定制的DataSet進行。

6)用戶界面層(Web UI) 客戶端提供對應用程序的訪問。

4 優化模式體系在信息系統中的應用

系統涉及某高校的教務教學、網絡辦公、圖書、后勤、科研等信息管理及歷史數據的整合,功能比較復雜,而且客戶要求提供門戶網站在線業務,支持學分、圖書等在線查詢。參考上節優化模型體系架構,提出解決方案如圖5所示。

4. 1 數據實體設計與實現

系統數據實體采取存儲過程,數據訪問層以函數形式調用具體存儲過程功能,避免代碼中出現數據訪問底層語句。以下是刪除圖書存儲過程代碼(asp_Deletet_book_book):

CREATE Procedure [dbo].[asp_Deletet_book_book]

@bookNo nvarchar(50)

As

SET NOCOUNT ON

DELETE FROM [dbo].[t_book_books]

WHERE

[BookNo]=@bookNo

--endregion

go

4. 2 數據訪問層設計與實現

數據訪問服務在核心類庫中主要通過SQLHelper.cs來提供對數據訪問功能調用的服務。數據訪問層和業務邏輯層間,引入Factory模式。實現對SQL、Oracle異構數據庫支持(圖6)。

4. 3 業務邏輯層設計與實現

業務邏輯層是業務邏輯處理的集中部分,主要功能是提取兩個需要處理的業務邏輯對象,即CategoryViewsystem和CSWSystem。業務邏輯層、業務接口層、數據訪問層類之間的調用關系如圖7所示。

業務邏輯層有了以上系統的架構,很容易將業務規則和邏輯類組合,構建業務處理功能。系統處理圖書借閱的功能封裝于t_books_borrowBiz.cs類中。其過程如圖8所示。其他業務邏輯封裝方法類似。

解決數據庫實體的設計之后,就可處理與數據庫交互部分。該層中,訪問后端數據庫的功能均由SQLHelper.cs類實現,而不同功能模塊對應的類均從該幫助類中調用實際功能。其訪問結構如圖9所示。

圖書借閱管理業務邏輯(t_book_borrowbiz.cs)代碼如下:

namespace pddx.BLL

{

Public class t_book_borrowbiz

……

//按照條件選擇

Public DataTable selectByCondition(string condition)

{

try

{

t_book_borrowDao dao=new t_book_borrowDao();

return dao.SelectByConditiion(condition);

}

Catch(Exception exc)

{ Throw exc; }

}}

4. 4 業務外觀層設計與實現

采用Facade模式,為Web層提供處理賬戶、類別瀏覽等簡單業務邏輯功能的界面通過Web service方式,將在線投票、查詢等業務封裝在相應類文件中。

在線投票業務(GetInvestigateMen.asmx.cs)

//判斷是否是系統用戶,只有系統用戶才能投票

[webMethod]

Public string ispoll(string username,string,vopuser)

{

DataView tmpDv=new DataView(0;

String sSql=\"\";

Ssql=\"select * from t_ws_questionvote where vNo=\"'+vopuser.trim()+\"\"';

String tmpStr=ddeal.EXESQL(sSql).DefaultView.Table. Rows[0]; [\"vopusercoputer\"].ToString().Trim();

String tmpcount=ddeal.EXESQL(sSql).DefaultView.Table. Rows [0];[\"vopusercount\"].ToString().Trim();

sSql=\"select * from t_ws_questionvote where PATINDEX (%\"+username.Trim()+;\"%′, vopuserCoputer)>0\";

tmpDv=ddeal.EXESQL(sSql).DefaultView;

string sScript=\"\";

if (tmpDv.Table.Rows.ount>0)

…… }

4. 5 對象實體層設計與實現

對象實體層(model)主要存儲在應用程序各層之間傳遞數據的瘦數據類或業務實體(圖10)。程序中有一些信息可以歸為一類,如系統中的圖書信息、用戶信息等。以圖書信息為例,有書名、書價、出版社等具體信息。這些就可以歸為一個實體。其中的信息均是這個類的屬性。具體應用時,這些實體均作為一個整體使用。

4. 6 Web層設計與實現

Web的主要功能是同客戶交互,這一層向用戶提供服務,主要功能是提供HTML界面,接收用戶的輸入,調用業務功能等,完成用戶的需求。 

5 結束語

通過對兩種示例架構及所對應的設計模式的分析與運用,結構清晰、可擴展性強、設計靈活、高效。輔以高效開發平臺,完成復合架構的設計,給出了優化架構的高內聚、低耦合、高性能、低代碼錯誤率在實際項目中的具體實現。

參考文獻:

[1]BROOKS F P. No silver bullet: essence and accidenis of software engineering[C]//Proc of IFIP 10th World Computing Conference. 1986:10691076.

[2]HMANN F B, REGINEMEUNIER.面向模式的軟件體系結構[M].卓棟濤,等譯.北京:機械工業出版社,2006.

[3]SCHANTZ R E,SCHMIDT D C.Middleware for distributed systems: evolving the common structure for networkcentric applications[M].New York: Wiley, 2001.

[4]EUGSTER P T, FELBER P,GUERRAOUI R,et al. The many faces of publish/subscribe[R]. Lausanne, Switzerland: EPFL, 2001.

[5]ZEROCM H.A new approach to objectoriented middle ware[J]. IEEE Internet Computing,2004,8(1):6675.

[6]覃征,何堅.軟件體系結構[M].西安:西安交通大學出版社,2007.

[7]BUECKER A, ASHLEY P, BOUYSSOU J,et al.Understanding SOA security design and implementation[K]. USA: IBM Corporation,2007.

[8]GAMMA E, HELM R, JOHMSON R, et al.設計模式:可復用面向對象軟件的基礎[M].北京:機械工業出版社,2000.

主站蜘蛛池模板: 青草午夜精品视频在线观看| 国产一级精品毛片基地| 老色鬼欧美精品| 成人毛片免费在线观看| 亚洲天堂福利视频| 亚洲人成网址| 国内精品久久九九国产精品| 无码'专区第一页| 亚洲国产成人精品无码区性色| AV在线天堂进入| www.91中文字幕| 国产丝袜无码精品| 国产一级毛片网站| 2021精品国产自在现线看| 日韩一级毛一欧美一国产| 午夜欧美在线| 极品性荡少妇一区二区色欲 | 亚洲欧美一级一级a| 久久免费观看视频| 日韩欧美中文亚洲高清在线| 精品视频免费在线| 香蕉伊思人视频| 欧美精品成人一区二区视频一| 亚洲精品桃花岛av在线| 亚洲无码免费黄色网址| 亚洲男女在线| 色香蕉影院| 成人午夜天| 亚洲国产系列| 国产午夜精品鲁丝片| 97视频精品全国免费观看| 国产www网站| 免费高清a毛片| 国产福利一区二区在线观看| www.91中文字幕| 婷婷99视频精品全部在线观看| 国产精品粉嫩| 国产激情第一页| 日韩在线永久免费播放| 久久99这里精品8国产| 青青极品在线| 污网站免费在线观看| 喷潮白浆直流在线播放| 国产成人精品免费av| 2022国产无码在线| 亚洲国产综合第一精品小说| 日本成人精品视频| 91成人免费观看在线观看| 国产成人综合网| 国产午夜在线观看视频| 日本国产精品| 亚洲91精品视频| 欧美激情视频一区二区三区免费| 日韩欧美国产精品| 亚洲欧美成aⅴ人在线观看| 精品夜恋影院亚洲欧洲| 美女无遮挡免费网站| 在线另类稀缺国产呦| 99热这里只有精品国产99| 国产黄在线观看| 中国特黄美女一级视频| 亚洲一级毛片在线观播放| 午夜人性色福利无码视频在线观看| 国产成人91精品| 69视频国产| 91久久大香线蕉| 成年女人a毛片免费视频| 在线国产欧美| 国产成人免费观看在线视频| 朝桐光一区二区| 日韩欧美中文| 国产精品亚欧美一区二区三区| 成人免费视频一区| 国产精品hd在线播放| 亚洲区欧美区| 九九热精品在线视频| 丰满人妻中出白浆| 久久综合丝袜长腿丝袜| av在线手机播放| 欧美精品1区2区| 中文天堂在线视频| 一级高清毛片免费a级高清毛片|