[图解]静态关系和动态关系

1
00:00:01,060 --> 00:00:04,370
首先我们来看静态关系和动态关系

2
00:00:06,160 --> 00:00:10,040
我们要尽量基于静态关系来建立动态关系

3
00:00:11,740 --> 00:00:13,740
不能够在没有这个的基础上

4
00:00:14,220 --> 00:00:17,370
没有这个的情况下就胡乱建立动态关系

5
00:00:17,650 --> 00:00:19,520
比如说,我们有4个类ABCD

6
00:00:21,530 --> 00:00:22,450
它们之间怎么合作

7
00:00:23,910 --> 00:00:26,480
你可以说A找B,B找C

8
00:00:26,490 --> 00:00:29,110
A找D,也可以说A找B,B找C

9
00:00:29,120 --> 00:00:30,640
C找D,也可以

10
00:00:30,650 --> 00:00:33,850
A找B,B找C,C找D,哪一个合理

11
00:00:35,490 --> 00:00:37,790
你没有静态关系作为依据

12
00:00:38,630 --> 00:00:39,550
你是不知道的

13
00:00:40,640 --> 00:00:42,140
但我们很多人经常是这样的

14
00:00:42,790 --> 00:00:45,140
你跟他说,你给我讲讲你怎么设计的

15
00:00:45,960 --> 00:00:47,840
他就跟你介绍,你看,我是这样

16
00:00:47,850 --> 00:00:50,320
A调用B,B调用C 

17
00:00:50,330 --> 00:00:53,450
A调用D,对呀,他代码就这样写的

18
00:00:53,780 --> 00:00:55,950
代码不是摆在那里吗

19
00:00:56,920 --> 00:00:59,260
但是你问他,你为什么要这样做

20
00:01:00,470 --> 00:01:02,150
为什么你觉得这样做是合理的

21
00:01:02,160 --> 00:01:03,600
我不知道

22
00:01:04,190 --> 00:01:06,970
我就觉得这样做合理,那不行

23
00:01:07,910 --> 00:01:09,580
要有这个作为依据的

24
00:01:10,500 --> 00:01:13,880
就像这个,张三和李四是夫妻

25
00:01:13,890 --> 00:01:15,810
这是静态关系

26
00:01:17,820 --> 00:01:21,050
他们在民政局档案里面已经登记在案了

27
00:01:22,400 --> 00:01:24,220
昨天是,今天是,明天也是的

28
00:01:24,750 --> 00:01:28,220
即使当前时间点他们没有在啪啪啪

29
00:01:29,040 --> 00:01:30,350
他们依然是夫妻

30
00:01:33,410 --> 00:01:36,940
这个就和下面这个,张三和李四

31
00:01:36,950 --> 00:01:38,020
昨天下午4点

32
00:01:38,780 --> 00:01:40,860
在某某地方发生了某某交互

33
00:01:43,070 --> 00:01:44,280
这个是动态的

34
00:01:44,680 --> 00:01:49,200
你看他在某一个时间点下面发生的行为

35
00:01:49,530 --> 00:01:52,670
而且是时间很短的

36
00:01:55,880 --> 00:01:56,560
动态的

37
00:01:58,680 --> 00:02:01,030
为什么刚才我们讲这个

38
00:02:01,040 --> 00:02:03,810
意思就是,假设张三

39
00:02:03,820 --> 00:02:05,930
现在想需要某种服务

40
00:02:07,400 --> 00:02:08,560
Ta应该找谁最合适

41
00:02:10,010 --> 00:02:11,360
应该找李四,为什么

42
00:02:11,670 --> 00:02:13,430
因为你和Ta都是夫妻了

43
00:02:14,310 --> 00:02:15,710
你调用Ta一次

44
00:02:16,890 --> 00:02:18,950
整个系统的耦合度有没有上升

45
00:02:19,930 --> 00:02:20,450
没有的

46
00:02:21,910 --> 00:02:24,570
不做白不做,做了也白做

47
00:02:25,750 --> 00:02:27,100
整个系统耦合度没上升

48
00:02:27,110 --> 00:02:31,700
因为这个耦合度比下面这个要强

49
00:02:32,840 --> 00:02:34,590
我们两个是夫妻了

50
00:02:36,250 --> 00:02:37,330
我找你拿100块钱

51
00:02:37,340 --> 00:02:39,170
我从你包里拿100块钱,这算什么

52
00:02:40,780 --> 00:02:42,550
但如果说我跟你本来不认识

53
00:02:43,060 --> 00:02:44,060
我现在需要钱了

54
00:02:44,060 --> 00:02:46,550
我就从你包里拿100块

55
00:02:46,560 --> 00:02:50,050
那不行,那就犯法了

56
00:02:55,660 --> 00:03:00,470
这样来,尽量把动态的调用

57
00:03:00,480 --> 00:03:06,400
建立在有静态关系的对象之间

58
00:03:07,540 --> 00:03:10,140
这样整个系统耦合度才不会

59
00:03:10,850 --> 00:03:12,290
才不会上升得很快

60
00:03:12,460 --> 00:03:17,690
我们知道系统的耦合度或混乱度是上升的

61
00:03:17,700 --> 00:03:19,490
但是我们希望上升是怎么上升

62
00:03:19,580 --> 00:03:20,610
是这样上升

63
00:03:22,360 --> 00:03:25,150
至少上升的程度要缓慢一点

64
00:03:25,560 --> 00:03:26,820
如果你是这样上升

65
00:03:28,720 --> 00:03:32,100
上升还有一个加速度,那还得了

66
00:03:33,060 --> 00:03:35,980
这个就完蛋了

67
00:03:35,990 --> 00:03:37,060
至少要慢点

68
00:03:39,480 --> 00:03:39,830
这样来

69
00:03:41,030 --> 00:03:43,860
如果说你违反这个,你一着急

70
00:03:45,840 --> 00:03:47,780
张三一着急,想要某种服务

71
00:03:47,790 --> 00:03:50,030
Ta随便找个陌生人乱搞

72
00:03:51,130 --> 00:03:52,840
大家都这样的话,很可能怎么样

73
00:03:53,130 --> 00:03:53,620
很快

74
00:03:54,220 --> 00:03:57,320
整个城市,整个系统,所有人都有问题

75
00:03:58,630 --> 00:04:00,240
所有人都有关系

76
00:04:00,250 --> 00:04:03,150
一个地方有问题

77
00:04:03,870 --> 00:04:05,260
张三得了某某病

78
00:04:05,270 --> 00:04:07,390
可能很多人都得了

79
00:04:09,550 --> 00:04:12,980
尽量基于静态关系来建立动态关系

80
00:04:13,110 --> 00:04:14,460
所以我们建模的时候

81
00:04:15,870 --> 00:04:16,950
就按照这个顺序来

82
00:04:17,240 --> 00:04:19,130
先对泛化关联建模

83
00:04:21,030 --> 00:04:24,140
然后在这个基础上

84
00:04:24,750 --> 00:04:26,400
通过画序列图等等

85
00:04:26,410 --> 00:04:30,270
再建模动态的依赖

86
00:04:35,220 --> 00:04:38,130
刚才讲的是静态关系和动态关系

87
00:04:39,050 --> 00:04:43,180
我们来看静态关系两种的区别

88
00:04:43,790 --> 00:04:45,130
泛化和关联的区别

89
00:04:46,840 --> 00:04:49,400
泛化和关联,刚才说了,一个集合关系

90
00:04:49,410 --> 00:04:51,000
一个个体关系

91
00:04:52,010 --> 00:04:53,910
泛化是一种集合关系

92
00:04:55,990 --> 00:05:00,510
B、C泛化到A,意味着什么

93
00:05:01,710 --> 00:05:06,410
A的对象集合包含了BC的对象集合

94
00:05:09,500 --> 00:05:10,970
集合的包含

95
00:05:13,860 --> 00:05:16,320
而A和B、C有关联

96
00:05:17,170 --> 00:05:17,810
意思是什么

97
00:05:18,190 --> 00:05:19,720
A集合里面的个体

98
00:05:19,730 --> 00:05:21,600
跟B、C里面的个体

99
00:05:22,050 --> 00:05:23,310
发生了映射

100
00:05:24,550 --> 00:05:25,550
有对应关系

101
00:05:27,360 --> 00:05:28,760
因为它是个体关系

102
00:05:28,850 --> 00:05:32,040
所以就有1对多、多对多,1对0..1

103
00:05:32,050 --> 00:05:33,160
之类的

104
00:05:33,510 --> 00:05:34,670
只有关联才有的

105
00:05:36,170 --> 00:05:37,180
泛化是没有的

106
00:05:39,850 --> 00:05:41,630
这是本质的区别

107
00:05:42,830 --> 00:05:46,580
你光从人类的自然语言,有时候很难判断的

108
00:05:48,150 --> 00:05:50,580
比如说,人有男人有女人

109
00:05:51,860 --> 00:05:54,290
这个人和男人女人是泛化是关联

110
00:05:55,490 --> 00:05:56,610
是泛化,为什么

111
00:05:56,620 --> 00:06:00,030
因为人有男人有女人

112
00:06:00,040 --> 00:06:03,050
并不是说一个人的个体,像我

113
00:06:03,910 --> 00:06:05,350
然后肚子里面吃了一个男人

114
00:06:05,360 --> 00:06:06,510
一个女人在里面,不是

115
00:06:06,520 --> 00:06:08,400
而是什么

116
00:06:08,410 --> 00:06:09,720
男人的集合

117
00:06:10,170 --> 00:06:12,010
全世界有70多亿

118
00:06:13,010 --> 00:06:14,700
包含了男人的集合

119
00:06:14,710 --> 00:06:15,940
和女人的集合

120
00:06:17,030 --> 00:06:18,700
它是一个集合的包含

121
00:06:22,160 --> 00:06:23,280
所以是泛化关系

122
00:06:24,350 --> 00:06:25,750
而人有手有脚

123
00:06:27,380 --> 00:06:28,380
这个是关联了

124
00:06:29,390 --> 00:06:30,410
人有手有脚

125
00:06:30,420 --> 00:06:32,580
意思并不是说人的集合

126
00:06:32,590 --> 00:06:33,860
包括脚的集合

127
00:06:34,280 --> 00:06:36,850
手的集合,你看桌子也有脚

128
00:06:38,130 --> 00:06:39,320
跟人就没关系

129
00:06:39,700 --> 00:06:41,090
他是说,一个人的个体

130
00:06:42,000 --> 00:06:44,760
由两个手、两个脚组装而成

131
00:06:45,360 --> 00:06:47,800
你看,多重性,两个

132
00:06:48,840 --> 00:06:50,080
个体的组装

133
00:06:50,960 --> 00:06:51,720
所以是关联

134
00:06:52,740 --> 00:06:54,240
你看,都是人有什么什么

135
00:06:54,250 --> 00:06:55,360
一个是泛化

136
00:06:55,690 --> 00:06:57,740
一个是关联

137
00:06:58,910 --> 00:07:01,410
我们来看,人有车有房是什么

138
00:07:02,500 --> 00:07:03,410
这是关联

139
00:07:06,140 --> 00:07:09,540
一个人可能跟某几个车有关联

140
00:07:09,550 --> 00:07:13,170
张三跟那一辆法拉利有关联

141
00:07:13,570 --> 00:07:17,170
李四跟那一辆奥迪有关联

142
00:07:17,180 --> 00:07:19,150
他是个体的

143
00:07:20,930 --> 00:07:22,390
人有高富帅有屌丝呢

144
00:07:23,600 --> 00:07:25,880
这是泛化了,人的集合

145
00:07:26,390 --> 00:07:29,920
包括高富帅的集合和屌丝的集合在里面

146
00:07:31,300 --> 00:07:35,380
集合的包含,泛化,这样来区分

147
00:07:36,410 --> 00:07:41,260
当然,如果说我们比较熟悉的领域

148
00:07:41,930 --> 00:07:43,170
一眼就可以看出来的

149
00:07:43,180 --> 00:07:46,260
那不用去想这么多

150
00:07:46,270 --> 00:07:49,800
像刚才人、男人、女人什么的这种,一看就知道了

151
00:07:49,810 --> 00:07:51,490
不用再想那么多

152
00:07:51,980 --> 00:07:53,340
我们说这个意思就是说

153
00:07:54,160 --> 00:07:57,810
当你对这个概念还不熟悉的时候

154
00:07:59,330 --> 00:08:00,990
面对一个陌生的领域

155
00:08:01,000 --> 00:08:04,750
不像人男女手脚这么简单的

156
00:08:05,760 --> 00:08:07,360
那么这个可以帮助我们思考

157
00:08:07,870 --> 00:08:09,390
追溯到集合、个体

158
00:08:09,830 --> 00:08:12,690
可以帮助我们来确定什么关系更合适

159
00:08:16,300 --> 00:08:18,510
刚才讲了泛化和关联的区别

160
00:08:18,720 --> 00:08:24,190
我们来看看,怎么来识别泛化关系

161
00:08:26,130 --> 00:08:26,570
泛化的识别怎么找

162
00:08:27,370 --> 00:08:29,600
第一个寻找的思路,就是直接形成

163
00:08:30,080 --> 00:08:32,900
我们两个类两个类的看

164
00:08:33,440 --> 00:08:34,510
A和B这样看

165
00:08:35,910 --> 00:08:38,110
看看这两个有没有泛化关系

166
00:08:38,620 --> 00:08:40,930
我们可以问,A是一种B吗

167
00:08:41,780 --> 00:08:42,960
或者B是一种A吗

168
00:08:42,970 --> 00:08:43,440


169
00:08:44,070 --> 00:08:45,140
两个两个这样看

170
00:08:45,880 --> 00:08:46,480
这是一种

171
00:08:48,540 --> 00:08:51,260
第二种,有没有自下而上的

172
00:08:53,780 --> 00:08:55,840
就看两个类有没有共性

173
00:08:56,660 --> 00:08:58,010
把共性提炼上去

174
00:08:59,640 --> 00:09:00,760
提炼出一个超类来

175
00:09:00,930 --> 00:09:01,560
自下而上

176
00:09:01,570 --> 00:09:10,370
或者说,从特殊到一般,第三个,自上而下的

177
00:09:10,830 --> 00:09:13,620
这个就是刚才我们审查类和属性的时候说的

178
00:09:15,010 --> 00:09:17,780
本来我只有一个C,后来发现什么

179
00:09:17,790 --> 00:09:23,700
C里面有些特征只有一部分对象有

180
00:09:24,620 --> 00:09:25,390
说明什么

181
00:09:25,730 --> 00:09:28,640
这些特征很可能不是属于C这个类的

182
00:09:28,650 --> 00:09:30,870
而是属于它里面的一个子类

183
00:09:32,740 --> 00:09:35,840
说明C发生分裂,分裂出AB来

184
00:09:36,670 --> 00:09:38,580
就像刚才讲那个人一样的

185
00:09:39,030 --> 00:09:40,050
人有卵巢

186
00:09:41,020 --> 00:09:43,470
人有喉结,对吗

187
00:09:43,950 --> 00:09:44,610
好像对

188
00:09:45,250 --> 00:09:46,920
但是我们细细看

189
00:09:47,440 --> 00:09:50,080
喉结、卵巢它不属于所有人的

190
00:09:50,750 --> 00:09:52,950
只有一部分人有,意味着什么

191
00:09:53,310 --> 00:09:54,620
人发生了分裂

192
00:09:54,890 --> 00:09:56,280
分裂成男人和女人

193
00:09:57,520 --> 00:09:58,770
喉结是男人的

194
00:09:59,380 --> 00:10:06,020
卵巢是女人的,三种,这是泛化关系的识别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/429206.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JVM】垃圾回收机制|死亡对象的判断算法|垃圾回收算法

思维导图 目录 1.找到谁是垃圾 1)引用计数(不是JVM采取的方式,而是Python/PHP的方案) 2)可达性分析(是JVM采用的方案) 2.释放对应的内存的策略 1)标记-清除(并不实…

Linux 文件系统(下)

目录 一.文件系统 1.文件在磁盘上的存储方式 a.盘面、磁道和扇区 b.分区和分组 2.有关Block group相关字段详解 a.inode编号 b.inode Table(节点表) c.Data blocks(数据区) d.小结 二.软硬链接 1.软链接 a.软链接的创建…

Netty+HTML5+Canvas 网络画画板实时在线画画

采用Html5的canvas做前端画画板&#xff0c;发送数据到后端Netty服务&#xff0c;实时转发笔迹数据&#xff0c;在线实时同步画笔轨迹&#xff0c;单击绿色小方块&#xff0c;保存画板的图片 页面&#xff1a; <!-- index.html --><!DOCTYPE html> <html> …

【Elasticsearch】-实现向量相似检索

1、http请求方式 如果elasticsearch服务设置账号密码&#xff0c;则在请求的header中添加 Basic Auth 认证 请求方式&#xff1a;Post 请求地址&#xff1a;/index_name/_search 请求body&#xff1a;json格式 {"size": 10, //返回条数"min_score": 0.…

二叉树——数据结构

这次我们来学习一下数据结构中的二叉树 1. 二叉树的概念及结构 1.1 二叉树的定义 定义&#xff1a;所有结点的度小于等于2的树。 上图中可以看出 二叉树不存在度大于2的结点二叉树的子树有左右之分&#xff0c;次序不能颠倒&#xff0c;因此二叉树是有序树。 任意二叉树都…

springboot实战学习(6)(用户模块的登录认证)(初识令牌)(JWT)

接着上篇博客学习。上篇博客是在基本完成用户模块的注册接口的开发以及注册时的参数合法性校验的基础上&#xff0c;基本完成用户模块的登录接口的主逻辑。具体往回看了解的链接如下。 springboot实战学习笔记&#xff08;5&#xff09;(用户登录接口的主逻辑)-CSDN博客文章浏览…

[数据结构与算法·C++版] 笔记 1.2 什么是数据结构

1.2 什么是数据结构 结构&#xff1a;实体 关系数据结构&#xff1a; 按照逻辑关系组织起来的一批数据&#xff0c;按一定的存储方法把它存储在计算机中在这些数据上定义了一个运算的集合 数据结构的逻辑组织 线性结构 线性表&#xff08;表&#xff0c;栈&#xff0c;队列&…

科研绘图系列:R语言多个AUC曲线图(multiple AUC curves)

文章目录 介绍加载R包导入数据数据预处理画图输出结果组图系统信息介绍 多个ROC曲线在同一张图上可以直观地展示和比较不同模型或方法的性能。这种图通常被称为ROC曲线图,它通过比较不同模型的ROC曲线下的面积(AUC)大小来比较模型的优劣。AUC值越大,模型的诊断或预测效果越…

【Linux笔记】虚拟机内Linux内容复制到宿主机的Window文件夹(文件)中

一、共享文件夹 I、Windows宿主机上创建一个文件夹 目录&#xff1a;D:\Centos_iso\shared_files II、在VMware中设置共享文件夹 1、打开VMware Workstation 2、选择需要设置的Linux虚拟机&#xff0c;点击“编辑虚拟机设置”。 3、在“选项”标签页中&#xff0c;选择“共…

数模方法论-整数规划

一、基本概念 非线性规划的应用包括工程设计、资源分配、经济模型等。在求解过程中&#xff0c;由于非线性特性&#xff0c;常用的方法有梯度法、牛顿法、启发式算法等。求解非线性规划问题时&#xff0c;解的存在性和唯一性通常较难保证&#xff0c;且可能存在多个局部最优解…

推荐3个AI论文、AI查重、AI降重工具

什么是AI论文、AI查重、AI降重工具&#xff1f; AI论文 AI论文指的是以人工智能&#xff08;AI&#xff09;相关主题为研究对象的学术论文。这类论文通常包含以下内容&#xff1a; 研究问题&#xff1a;针对某个特定的AI问题或领域的研究。方法&#xff1a;介绍用于解决问题…

yolov8旋转目标检测之绝缘子检测-从数据加载到模型训练、部署

YOLOv8 是 YOLO (You Only Look Once) 系列目标检测算法的最新版本&#xff0c;以其高速度和高精度而著称。在电力行业中&#xff0c;绝缘子是电力传输线路上的重要组件之一&#xff0c;它们用于支撑导线并保持电气绝缘。由于长期暴露在户外环境中&#xff0c;绝缘子容易出现损…

Netty源码-业务流程之构建连接

Netty基本介绍&#xff0c;参考 Netty与网络编程 1、Netty构建连接 构建连接的流程 1.1 我们知道客户端连接服务端都是通过NioEventLoop来处理请求&#xff0c;NioEventLoop是一个线程&#xff0c;连接进来首先进入run()方法。 所以我们需要启动服务端&#xff0c;然后再启动…

一个安卓鸿蒙化工具

DevEco插件&#xff0c;为已有安卓项目鸿蒙化加速。 目前支持&#xff1a; 1、安卓Vector Assets转svg&#xff1b; 2、json转ets model&#xff1b; 3、kotlin model转ets model&#xff1b; 下载地址&#xff1a;andtoharplugin1.1.0 安装&#xff1a; deveco插件安装选硬…

Java笔试面试题AI答之设计模式(2)

文章目录 6. 什么是单例模式&#xff0c;以及他解决的问题&#xff0c;应用的环境 &#xff1f;解决的问题应用的环境实现方式 7. 什么是工厂模式&#xff0c;以及他解决的问题&#xff0c;应用的环境 &#xff1f;工厂模式简述工厂模式解决的问题工厂模式的应用环境工厂模式的…

我的AI工具箱Tauri版-VideoIntroductionClipCut视频介绍混剪

本教程基于自研的AI工具箱Tauri版进行VideoIntroductionClipCut视频介绍混剪。 本项目为自研的AI工具箱Tauri版中的视频剪辑模块&#xff0c;专注于自动生成视频介绍片段。该模块名为 VideoIntroductionClipCut&#xff0c;用户可以通过该工具快速进行视频的混剪和介绍内容的生…

Selenium元素定位:深入探索与实践

目录 一、引言 二、Selenium元素定位基础 1. WebDriver与元素定位 2. 定位策略概览 三、ID定位 1. 特点与优势 2. 示例代码 四、Class Name定位 1. 特点与限制 2. 示例代码 五、XPath定位 1. 特点与优势 2. 示例代码 3. XPath高级用法 六、CSS Selector定位 1.…

Nacos 服务注册与发现

目录 Nacos 简介 Nacos(Dynamic Naming and Configuration Service) Nacos 安装 下载安装包 Windows 解压 目录介绍: 修改单机模式 启动 Nacos Linux 解压 单机模式启动 Nacos 快速上手 服务注册和发现 Nacos 负载均衡 服务下线 权重配置 开启 Nacos 负载均衡…

LeetCode --- 139双周赛

题目列表 3285. 找到稳定山的下标 3286. 穿越网格图的安全路径 3287. 求出数组中最大序列值 3288. 最长上升路径的长度 一、找到稳定山的下标 遍历数组&#xff0c;统计符合要求的答案即可&#xff0c;代码如下 class Solution { public:vector<int> stableMountai…

【开源免费】基于SpringBoot+Vue.JS服装商城系统(JAVA毕业设计)

本文项目编号 T 046 &#xff0c;文末自助获取源码 \color{red}{T046&#xff0c;文末自助获取源码} T046&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 新…