天書的博客
C++博客
首頁(yè)
新文章
新隨筆
聚合
管理
posts - 124, comments - 29, trackbacks - 0
抽象工廠模式及范例
Abstract Factory 模式:關(guān)鍵特征
意圖:為特定(不同)的客戶提供特定(不同)系列的對(duì)象
。
比如Vista風(fēng)格的桌面,Window標(biāo)準(zhǔn)的桌面(其中包括圖標(biāo)的樣式,菜單欄,任務(wù)欄等)
問(wèn)題:一系列相關(guān)或相互依賴的對(duì)象需要被實(shí)例化
解決方案:
先定義一個(gè)抽象工廠類來(lái)選擇工廠類(可以根據(jù)配置文件選取)
1
class
AbstractFactory
2
{
3
private
string
FactoryType
=
null
;
4
System.Configuration.AppSettingsReader asr
=
new
System.Configuration.AppSettingsReader();
5
public
IFactory GetFactory()
6
{
7
FactoryType
=
(
string
)asr.GetValue(
"
FactoryName
"
,
typeof
(
string
));
8
switch
(FactoryType)
9
{
10
case
"
ChineseFactory
"
:
11
return
new
ChineseFactory();
12
break
;
13
case
"
AmericanFactory
"
:
14
return
new
AmericanFactory();
15
break
;
16
default
:
17
return
new
ChineseFactory();
18
}
19
20
}
21
}
各個(gè)工廠類里創(chuàng)建不同系列的對(duì)象(同一工廠類里的對(duì)象風(fēng)格相同),但他們有一個(gè)共同的接口或父類
1
interface
IFactory
2
{
3
Service CreateService();
4
}
5
6
class
ChineseFactory : IFactory
7
{
8
9
IFactory 成員
#region
IFactory 成員
10
11
Service IFactory.CreateService()
12
{
13
return
new
ChineseService();
14
}
15
16
#endregion
17
}
18
class
AmericanFactory : IFactory
19
{
20
IFactory 成員
#region
IFactory 成員
21
22
Service IFactory.CreateService()
23
{
24
return
new
AmericanService();
25
}
26
27
#endregion
28
}
最后在客戶端Service se = (new AbstractFactory()).GetFactory().CreateService();
,提供一種“封裝機(jī)制”來(lái)避免客戶程序和這種“多系列具體對(duì)象創(chuàng)建工作”的緊耦合。每次在中國(guó)和美國(guó)的工資體制上切換時(shí)可以通過(guò)更改配置文件來(lái)切換。這樣就避免了源代碼保密的情況下無(wú)法更改業(yè)務(wù)規(guī)則的弊端。
配置文件如下
<?
xml version
=
"
1.0
"
encoding
=
"
utf-8
"
?>
<
configuration
>
<
appSettings
>
<
add key
=
"
FactoryName
"
value
=
"
ChineseFactory
"
/>
</
appSettings
>
</
configuration
>
posted on 2008-06-24 11:00
天書
閱讀(836)
評(píng)論(0)
編輯
收藏
引用
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
<
2008年12月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(5)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆檔案
2013年11月 (2)
2013年10月 (2)
2013年4月 (1)
2010年12月 (1)
2010年11月 (1)
2010年10月 (2)
2010年8月 (1)
2010年6月 (2)
2010年5月 (3)
2010年4月 (4)
2010年3月 (1)
2010年2月 (4)
2010年1月 (4)
2009年11月 (1)
2009年9月 (2)
2009年7月 (1)
2009年6月 (1)
2009年4月 (1)
2009年2月 (9)
2008年12月 (2)
2008年11月 (6)
2008年10月 (15)
2008年9月 (29)
2008年6月 (17)
2008年5月 (3)
2008年4月 (6)
2008年3月 (3)
文章分類
Direct3D(1)
文章檔案
2013年4月 (1)
2008年6月 (1)
2008年3月 (1)
好友的Bolg
韓全磊的技術(shù)Blog
搜索
最新評(píng)論
1.?re: 插件化開(kāi)發(fā)——接口和反射[未登錄](méi)
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--x
2.?re: 觸發(fā)器作用 一種特殊的存儲(chǔ)過(guò)程,它在插入,刪除或修改特定表中的數(shù)據(jù)時(shí)觸發(fā)執(zhí)行
thank you
--enen
3.?re: C#屬性解析——綜合“公有字段的簡(jiǎn)單而直接的表達(dá)式"和get和set函數(shù)提供的控制權(quán)"而產(chǎn)生的
很詳細(xì)
--www
4.?re: C# winform DevExpress GridControl GridView大批量數(shù)據(jù)(20萬(wàn)條)導(dǎo)出Excel[未登錄](méi)
導(dǎo)出的數(shù)據(jù)打不開(kāi)啊,不是EXCEL啊
--李
5.?re: C# textbox 屬性 TabStop 控制輸入焦點(diǎn)
sdfs
--78
閱讀排行榜
1.?DateTimePicker 控件的格式設(shè)置 CustomFormat yyyy-MM-dd HH:mm:ss 月大寫M,分鐘小寫m,小時(shí)H代表24小時(shí)計(jì)算,h代表12小時(shí)計(jì)算(20816)
2.?DevExpress.XtraCharts 使用心得(9941)
3.?c# 中treeview 樹(shù)節(jié)點(diǎn)圖標(biāo)的動(dòng)態(tài)加載,及選中時(shí)圖標(biāo)改變(7843)
4.?C# winform DevExpress GridControl GridView大批量數(shù)據(jù)(20萬(wàn)條)導(dǎo)出Excel(7548)
5.?DevExpress TreeList 調(diào)優(yōu)_綁定數(shù)據(jù)源方式, 放棄原來(lái)的AppendNode加載數(shù)據(jù)的方式(6772)
評(píng)論排行榜
1.?D3D中鏡面反射效果實(shí)現(xiàn)(3)
2.?C# 多行textbox 按回車鍵提取光標(biāo)所在行字符串且在最上面一行顯示,光標(biāo)回歸第一行(3)
3.?c# 圓形按鈕制作——Region屬性(3)
4.?C# textbox 屬性 TabStop 控制輸入焦點(diǎn)(2)
5.?C# 抽象方法Abstract 和 虛方法Virtual(1)
Copyright ©2025 天書 Powered By
博客園
模板提供:
滬江博客
国产精品久久久福利
|
精品亚洲综合久久中文字幕
|
久久九九久精品国产免费直播
|
久久被窝电影亚洲爽爽爽
|
91精品国产91久久久久久青草
|
国产精品热久久无码av
|
欧美大战日韩91综合一区婷婷久久青草
|
久久国产精品偷99
|
久久人人妻人人爽人人爽
|
久久无码av三级
|
伊人色综合久久天天人守人婷
|
AV色综合久久天堂AV色综合在
|
热RE99久久精品国产66热
|
思思久久99热免费精品6
|
三上悠亚久久精品
|
久久伊人五月天论坛
|
日产精品久久久久久久
|
久久天天躁狠狠躁夜夜不卡
|
人人狠狠综合久久88成人
|
久久久久亚洲精品天堂久久久久久
|
性色欲网站人妻丰满中文久久不卡
|
无码人妻少妇久久中文字幕蜜桃
|
91精品国产91久久久久久青草
|
久久免费的精品国产V∧
|
久久这里有精品
|
99热精品久久只有精品
|
久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口
|
久久精品www
|
国产精品美女久久久久久2018
|
色99久久久久高潮综合影院
|
一本大道久久a久久精品综合
|
99精品国产免费久久久久久下载
|
99久久精品费精品国产
|
国产精品美女久久久久久2018
|
久久亚洲日韩精品一区二区三区
|
久久久高清免费视频
|
青青热久久国产久精品
|
精品久久久久久无码不卡
|
亚洲人成无码www久久久
|
一本综合久久国产二区
|
亚洲国产天堂久久综合
|