魚躍于淵
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)建行為繼承下來,從而可以成為多個簡單工廠模式的綜合,進(jìn)而推廣了簡單工廠模式。
下面看例子代碼:
此模式涉及到抽象工廠角色(汽車廠),具體工廠角色(具體的汽車車間),抽象產(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 © 魚躍于淵
主站蜘蛛池模板:
久久久久国产精品免费看
|
思思久久99热免费精品6
|
99久久国产免费中文无字幕
|
成人免费视频国产
|
亚洲日日做天天做日日谢
|
久草视频免费在线观看
|
亚洲欧洲日产v特级毛片
|
午夜福利不卡片在线播放免费
|
亚洲国产成人精品久久
|
最近最新中文字幕完整版免费高清
|
77777亚洲午夜久久多喷
|
毛片a级毛片免费播放下载
|
亚洲精品自偷自拍无码
|
四虎国产精品免费久久影院
|
一本到卡二卡三卡免费高
|
亚洲日产无码中文字幕
|
午夜视频免费在线观看
|
亚洲伊人久久大香线蕉结合
|
午夜视频在线观看免费完整版
|
国产成人不卡亚洲精品91
|
中文字幕不卡亚洲
|
99久久免费观看
|
亚洲ts人妖网站
|
亚洲av成人一区二区三区在线观看
|
中文字幕免费不卡二区
|
亚洲精品**中文毛片
|
日韩中文字幕免费
|
A国产一区二区免费入口
|
亚洲美女视频一区
|
国产亚洲精品免费
|
久章草在线精品视频免费观看
|
亚洲av无码专区在线电影天堂
|
亚洲日韩中文字幕天堂不卡
|
日韩免费视频在线观看
|
久久精品视频免费
|
亚洲一区二区三区国产精华液
|
伊人婷婷综合缴情亚洲五月
|
我们的2018在线观看免费高清
|
麻豆va在线精品免费播放
|
亚洲三级电影网址
|
免费一级毛片不卡在线播放
|