《java與模式》(閻宏) 學(xué)習(xí)筆記II(簡(jiǎn)單工廠模式)
Posted on 2008-12-16 17:07 齊納爾多 閱讀(188) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): 設(shè)計(jì)模式一、創(chuàng)建模式(Creational Pattern) --> 對(duì)類(lèi)的實(shí)例化過(guò)程的抽象化
分類(lèi):
a.類(lèi)的創(chuàng)建模式 -->把類(lèi)的創(chuàng)建延遲到子類(lèi),從而封裝了子類(lèi)的具體實(shí)現(xiàn)
b.對(duì)象的創(chuàng)建模式 -->把對(duì)象的創(chuàng)建過(guò)程動(dòng)態(tài)的委派給另一個(gè)對(duì)象,從而動(dòng)態(tài)的決定客戶(hù)端需要哪些類(lèi)的實(shí)例,以及這些類(lèi)是如何被創(chuàng)建和組合在一起的
包含的具體模式有:
工廠模式、單(多)例模式、建造模式、原始模型模式 等等
二、簡(jiǎn)單工廠模式(Simple Factory) --->靜態(tài)工廠方法模式(Static Factory Method Pattern)
1.工廠模式分為3種
a.簡(jiǎn)單工廠模式(Simple Factory)
b.工廠方法模式(Factory Method)
c.抽象工廠模式(Abstract Factory)
2.Simple Factory : 就是由一個(gè)工廠對(duì)象決定創(chuàng)建出哪一個(gè)產(chǎn)品的實(shí)例
3.UML圖
4.簡(jiǎn)單測(cè)試代碼如下:

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

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

三、分析
1.從上面的例子可以看出:Simple Factory Pattern 就是由一個(gè)工廠類(lèi)根據(jù)傳入的參數(shù)來(lái)決定創(chuàng)建哪一種產(chǎn)品實(shí)例.
2.Simple-Factory 涉及到3個(gè)角色:工廠類(lèi)角色(Creator) 、抽象產(chǎn)品角色(Product)、具體產(chǎn)品角色(Concrete Product)
3.優(yōu)點(diǎn):實(shí)現(xiàn)了對(duì)責(zé)任的分割
缺點(diǎn):當(dāng)產(chǎn)品需要擴(kuò)展的時(shí)候,產(chǎn)品類(lèi)直接沒(méi)有影響,而工廠類(lèi)就必須修改了~~ 因?yàn)楣S類(lèi)涵蓋了所有產(chǎn)品的創(chuàng)造邏輯
四:在java中的應(yīng)用
1.DateFormat
(為一個(gè)抽象類(lèi),提供static DateFormat getDateInstance()
) : 這里可以粗略的看作 簡(jiǎn)單工廠類(lèi)和抽象產(chǎn)品類(lèi)的一個(gè)合并
---> 具體產(chǎn)品類(lèi)SimpleDateFormat