您的位置:首页 > 科技 > IT业 > [图解]企业应用架构模式2024新译本讲解11-领域模型4

[图解]企业应用架构模式2024新译本讲解11-领域模型4

2024/12/23 15:03:54 来源:https://blog.csdn.net/rolt/article/details/139543556  浏览:    关键词:[图解]企业应用架构模式2024新译本讲解11-领域模型4

1
00:00:00,160 --> 00:00:01,870
好,到这里的话

2
00:00:02,620 --> 00:00:05,060
文字处理器的产品对象就生成了

3
00:00:06,880 --> 00:00:09,180
同样下面就是电子表格

4
00:00:10,490 --> 00:00:11,480
电子表格也同样的

5
00:00:11,490 --> 00:00:15,290
它调用了一个New电子表格的

6
00:00:15,300 --> 00:00:20,080
这样一个操作,在这里

7
00:00:22,770 --> 00:00:29,340
这里面,你看,它这时候进来的策略

8
00:00:31,170 --> 00:00:33,900
它创建就需要一个参数了

9
00:00:33,990 --> 00:00:37,900
就是刚才讲的,第一个偏移时间段

10
00:00:37,910 --> 00:00:39,380
相当于

11
00:00:39,390 --> 00:00:43,990
第二次入账

12
00:00:44,000 --> 00:00:47,620
第三次入账是隔多少天以后

13
00:00:49,700 --> 00:00:52,260
以这个作为参数来创建一个产品对象

14
00:00:57,220 --> 00:00:59,010
这里,你看它就跳转到了

15
00:00:59,020 --> 00:01:02,180
这个三段式的收入确认策略

16
00:01:02,470 --> 00:01:03,540
这个类里面来

17
00:01:04,370 --> 00:01:10,060
这个地方,刚才我们在这个地方的时候

18
00:01:10,750 --> 00:01:15,550
是没有跳转的

19
00:01:15,560 --> 00:01:21,020
这个地方,你看,根本就没有

20
00:01:21,030 --> 00:01:24,060
这里面构造器都没写

21
00:01:24,510 --> 00:01:26,460
它只是写了一个这个方法

22
00:01:26,470 --> 00:01:30,260
New,有一个就完了,默认的构造

23
00:01:30,670 --> 00:01:31,530
这样一个对象

24
00:01:31,540 --> 00:01:33,560
这样一个类型的对象就完了

25
00:01:34,110 --> 00:01:35,160
构造器也没什么内容

26
00:01:37,020 --> 00:01:37,570
而三段式这个

27
00:01:40,510 --> 00:01:41,700
我把这个关掉

28
00:01:44,880 --> 00:01:52,730
三段式这个里面是有内容的

29
00:01:53,360 --> 00:01:55,010
这个地方

30
00:01:55,460 --> 00:01:58,210
所以你看,在构造这个的时候

31
00:01:59,220 --> 00:02:02,280
它这里要有一个赋值的过程

32
00:02:02,820 --> 00:02:06,190
因为刚才一次性的它没有什么值

33
00:02:06,320 --> 00:02:14,080
你看它类图上那个类,类图上

34
00:02:16,110 --> 00:02:17,940
这个地方

35
00:02:20,230 --> 00:02:21,420
这地方就没有

36
00:02:21,590 --> 00:02:24,720
这里是有的,这里有两个属性

37
00:02:26,570 --> 00:02:31,380
所以这里要有一个赋值的过程

38
00:02:33,330 --> 00:02:35,160
把这两个值赋给它

39
00:02:38,100 --> 00:02:38,950
然后就完了

40
00:02:42,310 --> 00:02:44,220
下面数据库这个也是一样的

41
00:02:44,230 --> 00:02:46,900
数据库跟表格也是三段式的

42
00:02:46,910 --> 00:02:47,420
一样的

43
00:02:48,550 --> 00:02:50,260
只不过段的时间不一样

44
00:02:50,460 --> 00:02:52,920
60天,90天,这是30天,60天

45
00:02:57,860 --> 00:02:58,270

46
00:02:59,520 --> 00:03:01,760
这个对象就创建出来了

47
00:03:04,750 --> 00:03:07,140
这个产品对象,还有合同对象

48
00:03:08,830 --> 00:03:13,480
合同对象,你看,创建一份合同,参数

49
00:03:17,230 --> 00:03:19,570
一个产品

50
00:03:20,000 --> 00:03:21,230
然后下面是金额

51
00:03:21,790 --> 00:03:23,100
然后这是时间

52
00:03:23,680 --> 00:03:26,060
产品,买了多少钱

53
00:03:26,400 --> 00:03:27,690
付了多少钱

54
00:03:28,110 --> 00:03:29,200
买了什么产品

55
00:03:29,680 --> 00:03:31,880
买了多少钱,付了多少钱

56
00:03:33,230 --> 00:03:37,450
那么这个钱,就是把这个钱

57
00:03:37,770 --> 00:03:38,970
变成Money了

58
00:03:41,030 --> 00:03:43,550
然后这个是把这个变成一个时间

59
00:03:48,910 --> 00:03:53,030
然后合同这里,你看,合同这里,合同的属性

60
00:03:54,160 --> 00:03:55,680
它有一个收入确认的集合

61
00:03:55,890 --> 00:04:03,980
你看我们这个合同,这是1,这是多

62
00:04:04,890 --> 00:04:08,750
所以1对多,就有一个,或者看这里也可以

63
00:04:13,740 --> 00:04:17,060
这里,一对多,有个集合

64
00:04:18,770 --> 00:04:21,680
集合我们就用List来表示

65
00:04:22,220 --> 00:04:23,390
有这样一个列表

66
00:04:26,560 --> 00:04:28,840
然后你看,它有关联到产品

67
00:04:29,360 --> 00:04:29,750


68
00:04:32,630 --> 00:04:36,490
然后这里还定义了一个金额

69
00:04:36,500 --> 00:04:38,370
类型是用Money

70
00:04:38,580 --> 00:04:39,610
事务脚本

71
00:04:39,620 --> 00:04:42,580
这个地方用过

72
00:04:42,590 --> 00:04:46,900
然后签约时间,类型是日期时间

73
00:04:47,280 --> 00:04:51,270
这两个跟前面事务脚本(口误),表模块一样的了

74
00:04:51,280 --> 00:04:56,370
就是说,标识在这里,也由这个类揽起来

75
00:04:56,460 --> 00:04:57,770
包括锁什么这种

76
00:04:58,460 --> 00:05:00,600
我们前面也讲了,实际上不用管这个

77
00:05:01,020 --> 00:05:06,420
应该把它交给另外的部分

78
00:05:12,270 --> 00:05:15,310
这是构造器,实际上就是赋值了

79
00:05:15,320 --> 00:05:21,290
产品,赋值到产品,收入

80
00:05:21,300 --> 00:05:23,050
签约时间

81
00:05:23,520 --> 00:05:25,370
然后这个一样,ID

82
00:05:25,380 --> 00:05:26,570
跟前面一样的

83
00:05:26,580 --> 00:05:28,670
生成一个新标识,怎么生成的

84
00:05:29,040 --> 00:05:32,540
一样的,加锁

85
00:05:33,160 --> 00:05:35,150
然后保证线程安全

86
00:05:35,400 --> 00:05:42,260
++,下面也是一样的

87
00:05:42,590 --> 00:05:43,420
都一样的

88
00:05:44,000 --> 00:05:48,410
这个就不重复了

1
00:00:00,990 --> 00:00:03,380
接下来,这个有了,这个有了

2
00:00:03,390 --> 00:00:05,840
我们就开始计算收入确认了

3
00:00:09,000 --> 00:00:12,060
操作首先是分配到合同这里来的

4
00:00:12,070 --> 00:00:15,340
让合同来计算它的收入确认

5
00:00:16,790 --> 00:00:20,750
我们来看合同怎么算

6
00:00:25,220 --> 00:00:25,800
往下走

7
00:00:29,090 --> 00:00:31,110
合同怎么算

8
00:00:31,120 --> 00:00:33,770
你看,它这里,在这里

9
00:00:33,900 --> 00:00:35,330
你看,它先委托

10
00:00:35,340 --> 00:00:38,640
给它关联到的产品

11
00:00:39,140 --> 00:00:40,200
委托给产品

12
00:00:43,090 --> 00:00:46,350
合同,这个地方,委托给产品

13
00:00:48,940 --> 00:00:50,920
把自己作为参数

14
00:00:53,330 --> 00:00:54,800
然后就跳到产品了

15
00:00:57,260 --> 00:01:02,230
产品这里,同样也有一个

16
00:01:02,240 --> 00:01:04,310
计算收入确认的操作

17
00:01:05,840 --> 00:01:06,840
参数是合同

18
00:01:08,980 --> 00:01:12,070
它又委托给它所绑定的一个策略

19
00:01:12,080 --> 00:01:13,180
对不对

20
00:01:15,020 --> 00:01:17,520
把这合同也同样作为参数传过去

21
00:01:19,260 --> 00:01:28,890
真正干活的是这个,它绑定的策略

22
00:01:28,900 --> 00:01:29,850
实际上是一个

23
00:01:31,070 --> 00:01:34,870
文字处理器绑定的是一个一次性的策略

24
00:01:35,250 --> 00:01:35,510


25
00:01:36,990 --> 00:01:38,320
所以这个里面很简单

26
00:01:38,330 --> 00:01:42,920
你看,合同给你

27
00:01:42,930 --> 00:01:45,520
相当于直接给合同

28
00:01:45,960 --> 00:01:48,070
添加一个收入确认

29
00:01:49,950 --> 00:01:51,940
把收入确认添加到合同上面

30
00:01:52,660 --> 00:01:54,940
金额就是合同收入金额

31
00:01:56,590 --> 00:01:58,180
时间就是签约时间

32
00:01:58,190 --> 00:02:00,340
相当于把它搬家

33
00:02:01,100 --> 00:02:05,500
从合同那个地方搬到收入确认那个地方

34
00:02:06,410 --> 00:02:08,760
我们前面讲了,这本身是冗余的

35
00:02:08,770 --> 00:02:10,400
它是可以计算出来的

36
00:02:10,490 --> 00:02:13,500
没有必要多一个冗余的计算结果

37
00:02:13,510 --> 00:02:15,560
你需要的时候再算就行了

38
00:02:16,100 --> 00:02:18,420
但是我们这里案例,我们前面也讲了,案例的话

39
00:02:18,430 --> 00:02:20,450
先按照书上这么讲

40
00:02:21,050 --> 00:02:27,030
但这个是没有必要的,添加

41
00:02:27,040 --> 00:02:28,230
你看,又跳到合同

42
00:02:28,240 --> 00:02:29,670
跳回到合同这里来了

43
00:02:30,930 --> 00:02:32,640
反复地跳

44
00:02:32,650 --> 00:02:38,940
合同跳到产品,产品到策略

45
00:02:39,280 --> 00:02:44,500
策略又跳回到合同来

46
00:02:44,510 --> 00:02:45,740
又跳回合同来

47
00:02:46,210 --> 00:02:51,700
合同,它有一个获取收入的操作

48
00:02:51,870 --> 00:02:55,260
实际上就是getter

49
00:02:55,390 --> 00:02:56,540
获取时间

50
00:02:56,670 --> 00:02:59,850
就是get set,一个包装

51
00:03:02,290 --> 00:03:02,520
当然

52
00:03:02,530 --> 00:03:07,540
如果我们用property之类的

53
00:03:07,550 --> 00:03:08,620
就不用,直接点

54
00:03:08,790 --> 00:03:14,070
直接把名称就变成一个方法了

55
00:03:15,520 --> 00:03:19,110
就代替了get,set这样的

56
00:03:27,060 --> 00:03:29,300
收入确认,创建收入确认对象

57
00:03:29,740 --> 00:03:31,190
又跳到收入确认这里来

58
00:03:31,200 --> 00:03:32,470
创建一个对象

59
00:03:34,460 --> 00:03:37,670
也就是说,创建一个收入确认

60
00:03:37,680 --> 00:03:44,820
以合同金额和签约时间为参数

61
00:03:45,030 --> 00:03:46,060
创建一个收入对象

62
00:03:46,070 --> 00:03:49,210
创建一个收入确认对象

63
00:03:49,220 --> 00:03:52,840
然后把它加入到合同的(收入确认)列表里面

64
00:03:57,190 --> 00:03:57,900
怎么加

65
00:03:58,270 --> 00:04:01,160
首先你看,这是一个列表

66
00:04:01,170 --> 00:04:05,190
这是我们刚才,一个列表

67
00:04:05,200 --> 00:04:10,350
在这个列表里面添加

68
00:04:10,360 --> 00:04:11,310
把它添加进去

69
00:04:12,680 --> 00:04:15,270
把刚刚生成的收入确认添加进去

70
00:04:15,630 --> 00:04:15,930


71
00:04:22,710 --> 00:04:26,620
又回来,一层一层又回来

72
00:04:27,820 --> 00:04:28,930
这个就结束了

73
00:04:30,660 --> 00:04:32,380
这个合同的计算,这个很简单

74
00:04:32,390 --> 00:04:34,250
因为它就一次性

75
00:04:34,690 --> 00:04:35,550
下面更复杂一点

76
00:04:35,560 --> 00:04:38,490
分三段的这种,电子表格的

77
00:04:40,350 --> 00:04:42,180
也同样,委托给产品

78
00:04:43,510 --> 00:04:43,960
一样的

79
00:04:45,050 --> 00:04:46,410
委托给策略,这一样的

80
00:04:46,420 --> 00:04:50,830
但这个策略跟刚才那个策略不一样了

81
00:04:50,840 --> 00:04:51,670
这个策略是什么

82
00:04:51,680 --> 00:04:53,650
你看,它是三段的

83
00:04:53,660 --> 00:04:56,480
你看,这里,三段的策略

84
00:04:56,960 --> 00:05:00,260
所以它就跳到三段式的策略这里来

85
00:05:02,140 --> 00:05:06,180
我们看三段式策略这个类,它继承这个,一样的

86
00:05:07,460 --> 00:05:10,770
3段这个数字3也是硬编码来着

87
00:05:11,390 --> 00:05:12,330
4段不行吗

88
00:05:12,340 --> 00:05:13,170
5段不行吗

89
00:05:13,180 --> 00:05:13,610
对不对

90
00:05:14,490 --> 00:05:18,090
所以这种的话,都是不好的,应该是什么

91
00:05:19,560 --> 00:05:20,870
进一步提取出概念

92
00:05:21,590 --> 00:05:27,970
段数,偏移,一共几段

93
00:05:28,670 --> 00:05:31,490
各段的偏移,提炼出概念

94
00:05:31,500 --> 00:05:33,920
不要写三,这是硬编码了

95
00:05:34,130 --> 00:05:36,270


96
00:05:41,790 --> 00:05:45,470
下面你看,这里定义了一些偏移

97
00:05:46,300 --> 00:05:48,650
第一个时间偏移,第二个偏移

98
00:05:49,050 --> 00:05:51,340
几天以后搞一笔

99
00:05:51,350 --> 00:05:52,540
几天以后再搞一笔

100
00:05:53,790 --> 00:05:54,780
这个才是什么

101
00:05:54,790 --> 00:05:56,060
真正要建模的概念

102
00:05:56,230 --> 00:05:57,220
偏移的概念

103
00:05:57,230 --> 00:06:02,120
而不是说具体时间,不是这个,偏移的概念

104
00:06:07,020 --> 00:06:08,280
这才是本质的概念

105
00:06:08,800 --> 00:06:10,050
这是它的属性,我们看

106
00:06:10,480 --> 00:06:12,070
刚才它的计算

107
00:06:12,750 --> 00:06:13,350
计算

108
00:06:14,500 --> 00:06:15,680
收入确认

109
00:06:17,020 --> 00:06:18,800
同样,我们前面事务脚本

110
00:06:18,810 --> 00:06:21,560
包括表模块也展示过了,分三份

111
00:06:21,770 --> 00:06:24,680
Allocate,分三份

112
00:06:29,370 --> 00:06:32,550
收入把它分三份

113
00:06:34,230 --> 00:06:35,780
一样的,分三份

114
00:06:35,790 --> 00:06:37,020
然后这一样的

115
00:06:37,630 --> 00:06:38,850
然后跟刚才一样了

116
00:06:40,070 --> 00:06:41,910
然后分好了,金额有了

117
00:06:42,000 --> 00:06:43,510
然后,时间,一样的

118
00:06:43,520 --> 00:06:44,390
金额在这里

119
00:06:45,680 --> 00:06:48,720
金额把它放到这里来

120
00:06:48,730 --> 00:06:52,050
第一份,第二份,第三份,然后加进来

121
00:06:52,300 --> 00:06:54,640
后面就跟刚才一样的

122
00:06:58,000 --> 00:07:07,460
给合同添加收入确认,都一样的

123
00:07:07,470 --> 00:07:10,690
这些刚才都已经演示过了

124
00:07:18,920 --> 00:07:21,400
回来,下面一样的,我们就不多说了

125
00:07:21,730 --> 00:07:22,760
我们来看,到这里

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com