魚躍于淵
First know how, Second know why !
posts - 0, comments - 1, trackbacks - 0, articles - 49
導(dǎo)航
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
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
留言簿
(1)
給我留言
查看公開留言
查看私人留言
文章分類
j2se (5)
javascript相關(guān)(16)
平時小練習(xí)(3)
精品網(wǎng)摘(16)
網(wǎng)頁外觀(2)
設(shè)計模式(4)
文章檔案
2008年12月 (19)
2008年11月 (1)
2008年10月 (2)
2008年9月 (27)
搜索
最新評論
1.?re: ajax 做圖片幻燈片[未登錄]
NICE
--^_^
工廠模式
Posted on 2008-12-20 19:29
魚躍于淵
閱讀(182)
評論(0)
編輯
收藏
所屬分類:
設(shè)計模式
工廠方法模式和簡單工廠模式在結(jié)構(gòu)上的不同是很明顯的。工廠方法模式的核心是一個抽象工廠類,而簡單工廠模式把核心放在一個具體類上。工廠方法模式可以允許很多具體工廠類從抽象工廠類中將創(chuàng)建行為繼承下來,從而可以成為多個簡單工廠模式的綜合,進而推廣了簡單工廠模式。
下面看例子代碼:
此模式涉及到抽象工廠角色(汽車廠),具體工廠角色(具體的汽車車間),抽象產(chǎn)品角色(汽車)以及具體產(chǎn)品角色(私車,公交巴士)。
1
package
com.givetop.Factory;
2
3
4
5
public
class
Factory1
{
6
public
static
void
main(String[] args)
{
7
Car_Factory cf
=
new
Car_Factory();
8
Car car
=
cf.getCar(
"
Benz
"
);
9
car.run();
10
car.stop();
11
System.out.println(
"
------------------------------------------------------------------------
"
);
12
Bus_Factory bf
=
new
Bus_Factory();
13
bf.getCar(
"
Big_Bus
"
).run();
14
bf.getCar(
"
Big_Bus
"
).stop();
15
System.out.println(
"
------------------------------------------------------------------------
"
);
16
bf.getCar(
"
Ford
"
).run();
17
bf.getCar(
"
Ford
"
).stop();
18
}
19
}
20
21
interface
Car
{
22
public
void
run();
23
public
void
stop();
24
}
25
26
interface
Factory
{
27
28
}
29
30
class
Car_Factory
implements
Factory
{
31
public
Car getCar(String type)
{
32
Car c
=
null
;
33
try
{
34
c
=
(Car)Class.forName(
"
com.givetop.Factory.
"
+
type).newInstance();
35
}
catch
(InstantiationException e)
{
36
e.printStackTrace();
37
}
catch
(IllegalAccessException e)
{
38
e.printStackTrace();
39
}
catch
(ClassNotFoundException e)
{
40
e.printStackTrace();
41
}
42
return
c;
43
}
44
}
45
46
class
Bus_Factory
implements
Factory
{
47
public
Car getCar(String type)
{
48
Car c
=
null
;
49
try
{
50
c
=
(Car)Class.forName(
"
com.givetop.Factory.
"
+
type).newInstance();
51
}
catch
(InstantiationException e)
{
52
e.printStackTrace();
53
}
catch
(IllegalAccessException e)
{
54
e.printStackTrace();
55
}
catch
(ClassNotFoundException e)
{
56
e.printStackTrace();
57
}
58
return
c;
59
}
60
}
61
62
class
Ford
implements
Car
{
63
public
void
run()
{
64
System.out.println(
"
Ford開始啟動了!
"
);
65
}
66
public
void
stop()
{
67
System.out.println(
"
Ford停止了!
"
);
68
}
69
}
70
71
class
Benz
implements
Car
{
72
public
void
run()
{
73
System.out.println(
"
Benz開始啟動了!
"
);
74
}
75
public
void
stop()
{
76
System.out.println(
"
Benz停止了!
"
);
77
}
78
}
79
80
class
Big_Bus
implements
Car
{
81
public
void
run()
{
82
System.out.println(
"
Big_Bus開始啟動了!
"
);
83
}
84
public
void
stop()
{
85
System.out.println(
"
Big_Bus停止了!
"
);
86
}
87
}
88
89
class
Mini_Bus
implements
Car
{
90
public
void
run()
{
91
System.out.println(
"
Mini_Bus開始啟動了!
"
);
92
}
93
public
void
stop()
{
94
System.out.println(
"
Mini_Bus停止了!
"
);
95
}
96
}
不過我有點納悶, Bus_Factory也能制造小汽車 , 可見這個還設(shè)計的不太完善,我想應(yīng)該在Car 這個接口里應(yīng)該分別有小汽車和Bus 的抽象類或接口才對!
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
抽象工廠模式
工廠模式
簡單工廠模式
單例模式(SingleTon)
Powered by:
BlogJava
Copyright © 魚躍于淵
主站蜘蛛池模板:
国产精品免费看香蕉
|
在线免费不卡视频
|
伊人久久大香线蕉亚洲五月天
|
2020国产精品亚洲综合网
|
97久久免费视频
|
亚洲黄色在线播放
|
97国产免费全部免费观看
|
亚洲一级视频在线观看
|
97无码免费人妻超级碰碰夜夜
|
国产亚洲精aa在线看
|
免费毛片在线视频
|
青青久久精品国产免费看
|
亚洲日韩在线观看
|
国产精品99精品久久免费
|
97se亚洲综合在线
|
青青视频观看免费99
|
亚洲色大成WWW亚洲女子
|
免费国产不卡午夜福在线
|
两个人的视频www免费
|
亚洲精品国产精品乱码视色
|
国产免费一区二区三区不卡
|
一级毛片a免费播放王色电影
|
亚洲成人影院在线观看
|
国产免费区在线观看十分钟
|
亚洲va无码专区国产乱码
|
亚洲成人免费网址
|
噜噜综合亚洲AV中文无码
|
国产亚洲欧洲Aⅴ综合一区
|
国产亚洲成归v人片在线观看
|
久久精品国产免费一区
|
亚洲婷婷在线视频
|
免费观看四虎精品国产永久
|
a级毛片毛片免费观看久潮
|
亚洲欧洲国产综合
|
免费一区二区视频
|
999久久久免费精品播放
|
亚洲乱码无人区卡1卡2卡3
|
亚洲乱码日产一区三区
|
国产在线国偷精品产拍免费
|
一级做a免费视频观看网站
|
亚洲成a人片7777
|