最近在看博客园里的推荐的《你必须知道的.NET》,对里面有一段关于银行的客户和职员的安排的程序有点兴趣。这里我把他改了下,促进理解:


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

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

87

88


89

90

91

92



93

94

95



96

97

98

99

100


101

102

103

104



105


106

107

108



109

110

111

112

113

114


115

116

117

118



119


120

121

122



123

124

125

126

127

128

类图:
如果我们屏蔽设计模式在本银行系统中的应用,单从供求关系来理解这段程序最好不过了,对于一个银行系统来说,主要包含职员和客户,职员按分工的不同分为诸如存款职员、转账职员、取款职员等,客户又分为存款客户、取款客户、转账客户等,从这方面来讲,似乎更难理解,换种方式,将银行系统分为需求和业务,客户对应需求,每个银行的客户都会对银行产生一种需求;银行提供的服务既是业务,职员对应业务;于是这样产生一个自然界的恒等式,即需求=业务,如果客户没有需求,那么银行就不会提供该种业务;所以在程序中不论用户的存款、取款、转账需求,最终都将return一个银行业务,单对于每一个业务的处理过程(operate),由于是银行内部的事情,所以应封装在业务类中,中间采用一个银行管理对象来(bankManage)连接二者之间的交互过程。