魚躍于淵
First know how, Second know why !
posts - 0, comments - 1, trackbacks - 0, articles - 49
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
<
2025年7月
>
日
一
二
三
四
五
六
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
8
9
留言簿
(1)
給我留言
查看公開留言
查看私人留言
文章分類
j2se (5)
javascript相關(16)
平時小練習(3)
精品網摘(16)
網頁外觀(2)
設計模式(4)
文章檔案
2008年12月 (19)
2008年11月 (1)
2008年10月 (2)
2008年9月 (27)
搜索
最新評論
1.?re: ajax 做圖片幻燈片[未登錄]
NICE
--^_^
工廠模式
Posted on 2008-12-20 19:29
魚躍于淵
閱讀(187)
評論(0)
編輯
收藏
所屬分類:
設計模式
工廠方法模式和簡單工廠模式在結構上的不同是很明顯的。工廠方法模式的核心是一個抽象工廠類,而簡單工廠模式把核心放在一個具體類上。工廠方法模式可以允許很多具體工廠類從抽象工廠類中將創建行為繼承下來,從而可以成為多個簡單工廠模式的綜合,進而推廣了簡單工廠模式。
下面看例子代碼:
此模式涉及到抽象工廠角色(汽車廠),具體工廠角色(具體的汽車車間),抽象產品角色(汽車)以及具體產品角色(私車,公交巴士)。
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也能制造小汽車 , 可見這個還設計的不太完善,我想應該在Car 這個接口里應該分別有小汽車和Bus 的抽象類或接口才對!
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
抽象工廠模式
工廠模式
簡單工廠模式
單例模式(SingleTon)
Powered by:
BlogJava
Copyright © 魚躍于淵
主站蜘蛛池模板:
国产在线观看免费不卡
|
女人18毛片水最多免费观看
|
亚洲综合精品网站
|
一级做a爰片久久毛片免费陪
|
国产成人高清精品免费软件
|
色综合久久精品亚洲国产
|
日韩在线看片免费人成视频播放
|
亚洲av最新在线观看网址
|
国产hs免费高清在线观看
|
免费大片黄在线观看
|
亚洲午夜精品久久久久久浪潮
|
一日本道a高清免费播放
|
国产亚洲精品无码拍拍拍色欲
|
久久久久久毛片免费看
|
亚洲成av人在线视
|
13一14周岁毛片免费
|
亚洲日韩在线视频
|
日本特黄特色aa大片免费
|
日韩精品视频在线观看免费
|
亚洲精品无码成人AAA片
|
一区二区三区观看免费中文视频在线播放
|
亚洲最大成人网色
|
免费看韩国黄a片在线观看
|
亚洲Av无码国产一区二区
|
国产精品亚洲美女久久久
|
亚洲精品乱码久久久久久蜜桃不卡
|
黄色网页在线免费观看
|
亚洲第一成年男人的天堂
|
97性无码区免费
|
国产99久久亚洲综合精品
|
亚洲精品成人片在线观看精品字幕
|
99爱视频99爱在线观看免费
|
亚洲日韩av无码中文
|
久久久亚洲精品蜜桃臀
|
59pao成国产成视频永久免费
|
亚洲精品无码中文久久字幕
|
亚洲综合另类小说色区色噜噜
|
足恋玩丝袜脚视频免费网站
|
疯狂做受xxxx高潮视频免费
|
久久久久久亚洲AV无码专区
|
国产又大又粗又硬又长免费
|