[图解]实现领域驱动设计译文暴露的问题03

2024-05-13 09:36

本文主要是介绍[图解]实现领域驱动设计译文暴露的问题03,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0
00:00:02,960 --> 00:00:04,940
前面我们讲了

1
00:00:05,260 --> 00:00:06,810
第①句话的

2
00:00:07,090 --> 00:00:09,750
第(1)个问题和第(2)个问题

3
00:00:13,920 --> 00:00:16,930
共享父类的对象,对象树

4
00:00:16,930 --> 00:00:20,488
这样的说法是有问题的

5
00:00:20,488 --> 00:00:22,130
第二个,关联

6
00:00:22,410 --> 00:00:22,674


7
00:00:22,674 --> 00:00:23,730
这个不对

8
00:00:25,150 --> 00:00:27,737
上一期视频我们也说到了

9
00:00:27,737 --> 00:00:29,130
这里面有个反转

10
00:00:30,060 --> 00:00:32,130
那我们来看这个反转是什么

11
00:00:34,590 --> 00:00:38,000
如果没有共享父类这样的文字

12
00:00:41,690 --> 00:00:45,600
那这里的对象树,原文是图

13
00:00:46,250 --> 00:00:46,449


14
00:00:46,449 --> 00:00:48,843
它就有可能误打误撞

15
00:00:48,843 --> 00:00:50,040
就变成是对的

16
00:00:51,940 --> 00:00:53,010
为什么呢

17
00:00:56,020 --> 00:00:56,920
你看

18
00:00:57,200 --> 00:01:01,730
如果我们一个聚合组合的关联的整体的一端

19
00:01:04,410 --> 00:01:04,958
它的

20
00:01:04,958 --> 00:01:06,880
多重性上限是1

21
00:01:09,480 --> 00:01:10,703
它可以是0

22
00:01:10,703 --> 00:01:13,150
因为可能最顶上那个,像这个

23
00:01:13,660 --> 00:01:15,610
它就没有上级嘛

24
00:01:15,610 --> 00:01:16,043


25
00:01:16,043 --> 00:01:17,560
没有老大

26
00:01:19,190 --> 00:01:19,465


27
00:01:19,465 --> 00:01:24,140
那么这个整体部分的对象的链接结构

28
00:01:25,070 --> 00:01:28,290
它确实是一棵有向的树

29
00:01:28,590 --> 00:01:29,570
像这样

30
00:01:29,850 --> 00:01:31,630
你看,左边是类图

31
00:01:32,480 --> 00:01:34,520
右边是对象链接

32
00:01:34,800 --> 00:01:37,510
的形状构造

33
00:01:38,410 --> 00:01:40,948
包括上面这个ABC也行

34
00:01:40,948 --> 00:01:43,486
下面这个A的自反关联

35
00:01:43,486 --> 00:01:44,640
自反的聚合

36
00:01:44,640 --> 00:01:47,410
类图上面只有一个类A

37
00:01:47,740 --> 00:01:49,060
但是A的

38
00:01:50,470 --> 00:01:51,525
实例本身

39
00:01:51,525 --> 00:01:54,060
它也可能构成一个什么

40
00:01:54,720 --> 00:01:55,030


41
00:01:55,030 --> 00:01:56,270
构成一个

42
00:01:59,220 --> 00:02:01,330
对象的一棵树

43
00:02:02,940 --> 00:02:03,350


44
00:02:03,350 --> 00:02:04,170
就像

45
00:02:05,070 --> 00:02:06,862
商品的类别一样嘛

46
00:02:06,862 --> 00:02:07,534
对不对

47
00:02:07,534 --> 00:02:09,550
大类别下面有小类别

48
00:02:09,830 --> 00:02:10,022


49
00:02:10,022 --> 00:02:11,950
小类别下面有小小类别

50
00:02:12,260 --> 00:02:13,490
如果说

51
00:02:13,930 --> 00:02:17,040
我这里面只有一个类,叫类别

52
00:02:19,000 --> 00:02:21,590
那么类别和类别之间的这种

53
00:02:22,190 --> 00:02:25,700
关系,它就变成了递归的关联

54
00:02:26,090 --> 00:02:29,620
如果这个递归关联本身是一个

55
00:02:30,860 --> 00:02:32,630
一对多的,就是说

56
00:02:33,060 --> 00:02:35,930
一个下级只能有一个上级

57
00:02:36,360 --> 00:02:39,035
一个上级可以有多个下级

58
00:02:39,035 --> 00:02:41,710
它确实就是一棵这样的树

59
00:02:46,310 --> 00:02:48,840
那如果不是一对多

60
00:02:49,400 --> 00:02:51,000
整体这一端

61
00:02:51,930 --> 00:02:53,570
它可以是多的

62
00:02:54,690 --> 00:02:55,480


63
00:02:56,800 --> 00:02:58,880
就是一个部分对象

64
00:02:59,510 --> 00:03:02,150
可以属于多个整体对象

65
00:03:02,510 --> 00:03:06,680
当然这个时候,所谓的整体部分

66
00:03:07,710 --> 00:03:09,220
就已经没有

67
00:03:09,950 --> 00:03:11,051
严谨的含义了

68
00:03:11,051 --> 00:03:12,519
含义已经模糊了

69
00:03:12,519 --> 00:03:13,070
对不对

70
00:03:13,350 --> 00:03:14,772
你既然是部分

71
00:03:14,772 --> 00:03:18,327
你还能够同时属于别人,不行的

72
00:03:18,327 --> 00:03:19,750
你应该是什么

73
00:03:20,170 --> 00:03:22,440
在同一个时间内,啪

74
00:03:22,740 --> 00:03:24,230
拍一张快照

75
00:03:24,620 --> 00:03:27,710
应该是什么样,只能够拍到

76
00:03:28,030 --> 00:03:29,400
它只属于

77
00:03:30,600 --> 00:03:31,770
一个整体

78
00:03:32,360 --> 00:03:35,040
当然你可以把它转移

79
00:03:35,530 --> 00:03:37,833
比如说,你本来是他的小弟

80
00:03:37,833 --> 00:03:38,880
是属于他的

81
00:03:39,700 --> 00:03:42,160
现在你被他抛弃了

82
00:03:42,440 --> 00:03:43,777
他把你解除了

83
00:03:43,777 --> 00:03:45,114
扔到一边去了

84
00:03:45,114 --> 00:03:48,457
另外一个老大把你捡起来,这可以

85
00:03:48,457 --> 00:03:48,902
对吧

86
00:03:48,902 --> 00:03:52,245
但是同一时间,你不可能拍到,啪

87
00:03:52,245 --> 00:03:53,360
同一个

88
00:03:53,640 --> 00:03:57,230
部分属于两个或多个

89
00:03:57,570 --> 00:03:59,830
不同的整体,那就不对了

90
00:04:01,180 --> 00:04:04,972
如果说一个部分对象

91
00:04:04,972 --> 00:04:07,890
可以同时属于多个的话

92
00:04:08,250 --> 00:04:10,110
那就可以是这样了

93
00:04:10,110 --> 00:04:12,383
就变成一张有向无环图

94
00:04:12,383 --> 00:04:13,830
变成一张图了

95
00:04:13,830 --> 00:04:14,450
对不对

96
00:04:15,470 --> 00:04:15,648


97
00:04:15,648 --> 00:04:18,501
但这个时候这个含义已经模糊了

98
00:04:18,501 --> 00:04:20,285
所以呢,这个我们只是说

99
00:04:20,285 --> 00:04:21,533
如果是这样的情况

100
00:04:21,533 --> 00:04:24,030
但不代表这样的情况是提倡的

101
00:04:24,310 --> 00:04:26,539
那就无所谓什么整体部分关系

102
00:04:26,539 --> 00:04:28,597
变成普通关联就行了

103
00:04:28,597 --> 00:04:28,940
对吧

104
00:04:32,090 --> 00:04:33,950
那为什么是有向

105
00:04:34,890 --> 00:04:36,800
因为这个

106
00:04:37,080 --> 00:04:38,840
组合聚合关系

107
00:04:39,770 --> 00:04:41,920
它是非对称的

108
00:04:42,440 --> 00:04:44,423
实际上,我们的继承关系

109
00:04:44,423 --> 00:04:46,226
或者泛化关系也是非对称的

110
00:04:46,226 --> 00:04:48,210
只不过这个非对称是什么

111
00:04:48,490 --> 00:04:51,690
它是在集合的层面上非对称

112
00:04:52,300 --> 00:04:53,610
不能说

113
00:04:54,070 --> 00:04:55,635
A是B的一种

114
00:04:55,635 --> 00:04:57,200
B是C的一种

115
00:04:57,480 --> 00:04:59,468
然后C又是A的一种

116
00:04:59,468 --> 00:05:00,793
那不行的

117
00:05:00,793 --> 00:05:02,561
不可能是这样

118
00:05:02,561 --> 00:05:03,003
对吧

119
00:05:03,003 --> 00:05:05,433
泛化,集合的包含嘛

120
00:05:05,433 --> 00:05:06,980
而聚合组合关系

121
00:05:08,620 --> 00:05:10,222
也是非对称的

122
00:05:10,222 --> 00:05:14,230
如果B对象是A对象的一部分的话

123
00:05:15,230 --> 00:05:16,310
那么A

124
00:05:16,590 --> 00:05:20,250
就不可能直接或间接成为B的部分

125
00:05:20,890 --> 00:05:21,121


126
00:05:21,121 --> 00:05:25,280
所以呢,在对象级别上不可能有这样的

127
00:05:26,050 --> 00:05:26,870


128
00:05:27,920 --> 00:05:29,660
A组合B

129
00:05:29,950 --> 00:05:30,176


130
00:05:30,176 --> 00:05:31,990
B是A的一部分

131
00:05:32,270 --> 00:05:35,356
然后C又是B的一部分

132
00:05:35,356 --> 00:05:37,320
然后C反过来又

133
00:05:37,720 --> 00:05:39,560
组合A,那不行的

134
00:05:40,840 --> 00:05:43,810
就像汽车有轮子

135
00:05:43,810 --> 00:05:44,405


136
00:05:44,405 --> 00:05:47,970
轮子上面呢,有个轴承

137
00:05:48,450 --> 00:05:50,960
有个轮子的芯

138
00:05:51,830 --> 00:05:52,025


139
00:05:52,025 --> 00:05:53,000
ABC嘛

140
00:05:53,000 --> 00:05:55,925
然后这个芯反过来组装了这个汽车

141
00:05:55,925 --> 00:05:56,900
怎么可能呢

142
00:05:56,900 --> 00:05:57,290
对吧

143
00:06:00,560 --> 00:06:04,285
要注意,我们这里说的是对象级别

144
00:06:04,285 --> 00:06:07,080
有的同学这里搞不清楚,说

145
00:06:07,360 --> 00:06:08,530
可以呀

146
00:06:09,550 --> 00:06:12,120
我这个轮子里面

147
00:06:12,430 --> 00:06:14,780
可以再组装一个汽车对象

148
00:06:16,900 --> 00:06:18,178
汽车组装轮子

149
00:06:18,178 --> 00:06:19,243
轮子也组装汽车

150
00:06:19,243 --> 00:06:19,670


151
00:06:20,110 --> 00:06:22,205
可不可以,可以的

152
00:06:22,205 --> 00:06:24,900
但是,那个汽车对象跟

153
00:06:25,180 --> 00:06:28,987
这个汽车对象不是同一个汽车对象

154
00:06:28,987 --> 00:06:30,510
搞清楚

155
00:06:31,250 --> 00:06:32,427
就像我们这个

156
00:06:32,427 --> 00:06:32,820
你看

157
00:06:33,580 --> 00:06:36,916
A自己组装A,可不可以,可以呀

158
00:06:36,916 --> 00:06:37,430
对吧

159
00:06:37,750 --> 00:06:37,959


160
00:06:37,959 --> 00:06:39,633
部门里面有小部门

161
00:06:39,633 --> 00:06:40,888
两个都是部门

162
00:06:40,888 --> 00:06:43,190
但是大部门里面有小部门

163
00:06:43,610 --> 00:06:46,661
但这里经常很多人在这里糊涂的

164
00:06:46,661 --> 00:06:48,950
特别是很多现在的程序员

165
00:06:49,490 --> 00:06:51,500
缺少基本的训练

166
00:06:53,350 --> 00:06:55,063
基本的抽象能力都没有

167
00:06:55,063 --> 00:06:57,290
经常这个就把他打晕掉了

168
00:07:01,280 --> 00:07:03,021
这是类级别上的

169
00:07:03,021 --> 00:07:05,198
但是展开到对象级别上

170
00:07:05,198 --> 00:07:07,157
它是不同的对象

171
00:07:07,157 --> 00:07:07,810
对不对

172
00:07:08,510 --> 00:07:09,340


173
00:07:10,150 --> 00:07:12,990
很多同学这里经常就出问题的

0
00:00:00,770 --> 00:00:02,336
类似这样的观点

1
00:00:02,336 --> 00:00:04,250
我前面已经说过很多遍了

2
00:00:04,680 --> 00:00:05,360


3
00:00:05,640 --> 00:00:08,287
比如说,一个人

4
00:00:08,287 --> 00:00:11,230
他说我觉得

5
00:00:12,000 --> 00:00:13,416
很多搞迷信的

6
00:00:13,416 --> 00:00:14,597
这些是对的

7
00:00:14,597 --> 00:00:14,833


8
00:00:14,833 --> 00:00:16,250
我就信那个

9
00:00:17,030 --> 00:00:17,228


10
00:00:17,228 --> 00:00:18,615
这是他的自由

11
00:00:18,615 --> 00:00:20,200
但如果说这个人

12
00:00:21,360 --> 00:00:21,932
他说

13
00:00:21,932 --> 00:00:24,224
我的迷信这一套就比科学强

14
00:00:24,224 --> 00:00:25,560
我要证明给你看

15
00:00:25,560 --> 00:00:27,470
你科学没什么了不起的

16
00:00:28,080 --> 00:00:28,300


17
00:00:28,300 --> 00:00:30,285
他就认真去学科学

18
00:00:30,285 --> 00:00:31,167
学物理

19
00:00:31,167 --> 00:00:32,270
学化学,等等

20
00:00:32,560 --> 00:00:35,460
还去参加高考,结果呢

21
00:00:35,740 --> 00:00:36,922
高考

22
00:00:36,922 --> 00:00:38,500
物理、化学考了很高的分

23
00:00:41,720 --> 00:00:42,720
你想想

24
00:00:43,000 --> 00:00:44,930
如果一个人他能够

25
00:00:45,350 --> 00:00:47,470
考到这么高的分的话

26
00:00:47,890 --> 00:00:51,020
他有可能回去信之前的那一套吗

27
00:00:51,310 --> 00:00:52,716
他不可能的

28
00:00:52,716 --> 00:00:53,560
对不对

29
00:00:55,540 --> 00:00:58,377
我们之所以很多时候信那些东西

30
00:00:58,377 --> 00:01:01,620
就是因为什么,我们没有认真去学习过

31
00:01:01,900 --> 00:01:04,450
比较严谨的一些思维

32
00:01:09,190 --> 00:01:10,540
这是第(3)点

33
00:01:11,960 --> 00:01:13,680
第(4)点就是

34
00:01:14,380 --> 00:01:14,650


35
00:01:14,650 --> 00:01:17,900
确实为什么有这样的误解

36
00:01:18,200 --> 00:01:21,063
跟译者本身的知识的缺陷有关

37
00:01:21,063 --> 00:01:25,470
但是呢,原文的parent这个词确实用得不好

38
00:01:26,950 --> 00:01:29,820
因为这个往往是用在类上面

39
00:01:30,100 --> 00:01:30,363


40
00:01:30,363 --> 00:01:31,680
应该是整体

41
00:01:31,960 --> 00:01:32,209


42
00:01:32,209 --> 00:01:35,700
整体对象,这样用更好一点

43
00:01:40,700 --> 00:01:42,270
那建议的译文

44
00:01:42,550 --> 00:01:42,770


45
00:01:42,770 --> 00:01:43,870
就这样

46
00:01:43,870 --> 00:01:46,730
聚合只是把共同父对象之下的

47
00:01:46,730 --> 00:01:48,050
%……&&¥¥

48
00:01:48,570 --> 00:01:50,670
我们就忠实地

49
00:01:50,950 --> 00:01:52,283
根据原文来译

50
00:01:52,283 --> 00:01:55,330
这里父对象,这个我们依然留下来

51
00:01:55,770 --> 00:01:56,010


52
00:01:56,010 --> 00:01:57,450
不改成整体

53
00:02:01,060 --> 00:02:01,292

54
00:02:01,292 --> 00:02:02,684
这是第①句了

55
00:02:02,684 --> 00:02:04,540
那我们来看第②句

56
00:02:09,720 --> 00:02:10,870
第②句

57
00:02:10,870 --> 00:02:13,170
这是原文和译文

58
00:02:13,850 --> 00:02:16,530
那问题呢,有这么几个

59
00:02:17,660 --> 00:02:18,790
比较大的

60
00:02:19,070 --> 00:02:19,890
这个

61
00:02:20,270 --> 00:02:22,520
(1)(2)这是比较大的了

62
00:02:24,630 --> 00:02:25,740
你看这里

63
00:02:26,180 --> 00:02:27,590
它说“遍历”

64
00:02:28,640 --> 00:02:30,240
但这里并没有说遍历

65
00:02:30,240 --> 00:02:31,130
只是说什么

66
00:02:32,290 --> 00:02:33,920
导航

67
00:02:34,280 --> 00:02:34,568


68
00:02:34,568 --> 00:02:36,300
没有说遍历

69
00:02:36,890 --> 00:02:38,180
只是说导航

70
00:02:38,780 --> 00:02:39,730
第(2)个

71
00:02:40,010 --> 00:02:42,450
这里有个深度的递归

72
00:02:44,110 --> 00:02:45,020
这里面

73
00:02:45,300 --> 00:02:46,998
有一个深地

74
00:02:46,998 --> 00:02:49,830
这个有,没有说递归

75
00:02:51,440 --> 00:02:54,453
那为什么会有这样的一个译文出来

76
00:02:54,453 --> 00:02:57,668
背后有什么样的思想上的根源

77
00:02:57,668 --> 00:03:00,280
可能有什么样的思想上的根源

78
00:03:00,840 --> 00:03:01,248


79
00:03:01,248 --> 00:03:02,880
这个我们

80
00:03:03,160 --> 00:03:04,130
下期

81
00:03:04,610 --> 00:03:04,843


82
00:03:04,843 --> 00:03:06,480
我们再来探讨

这篇关于[图解]实现领域驱动设计译文暴露的问题03的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985334

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

缓存雪崩问题

缓存雪崩是缓存中大量key失效后当高并发到来时导致大量请求到数据库,瞬间耗尽数据库资源,导致数据库无法使用。 解决方案: 1、使用锁进行控制 2、对同一类型信息的key设置不同的过期时间 3、缓存预热 1. 什么是缓存雪崩 缓存雪崩是指在短时间内,大量缓存数据同时失效,导致所有请求直接涌向数据库,瞬间增加数据库的负载压力,可能导致数据库性能下降甚至崩溃。这种情况往往发生在缓存中大量 k