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

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.mfbz.cn/a/883370.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python第一篇:Python解释器

一:python解释器 python解释器是一款程序,用于解释、执行Python源代码。 一般python解释器都是c python使用c编写的,还有j python用java编写的。 二:python下载 三:使用示例 python进入控制台,python。 三…

【2.使用VBA自动填充Excel工作表】

目录 前言什么是VBA如何使用Excel中的VBA简单基础入门控制台输出信息定义过程(功能)定义变量常用的数据类型Set循环For To 我的需求开发过程效果演示文件情况测试填充源文件测试填充目标文件 全部完整的代码sheet1中的代码,对应A公司工作表Us…

2024年最新Redis内存数据库主从复制、哨兵模式、集群部署等详细教程(更新中)

Centos 安装 Redis 检查安装 GCC 环境 [rootVM-4-17-centos ~]# gcc --version gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; no…

Cisco Secure Firewall Threat Defense Virtual 7.6.0 发布下载,新增功能概览

Cisco Secure Firewall Threat Defense Virtual 7.6.0 - 思科下一代防火墙虚拟设备 (FTDv) Firepower Threat Defense (FTD) Software for ESXi & KVM 请访问原文链接:https://sysin.org/blog/cisco-firepower-7/,查看最新版。原创作品&#xff0c…

信息安全管理工程师(工信部教育与考试中心)

在信息技术迅猛发展的时代,信息安全已经成为企业乃至国家安全不可或缺的一环。 工信部高级信息安全管理工程师认证,作为软考中的一项顶尖资格认证,对提升信息安全管理人员的专业能力、确保信息安全性具有至关重要的作用。 本文将深入探讨该…

神经网络(四):UNet图像分割网络

文章目录 一、简介二、网络结构2.1编码器部分2.2解码器部分2.3完整代码 三、实战案例 一、简介 UNet网络是一种用于图像分割的卷积神经网络,其特点是采用了U型网络结构,因此称为UNet。该网络具有编码器和解码器结构,两种结构的功能如下&#…

网络安全中的 EDR 是什么:概述和功能

专业知识:EDR、XDR、NDR 和 MDR_xdr edr ndr-CSDN博客 端点检测和响应 (EDR) 是一种先进的安全系统,用于检测、调查和解决端点上的网络攻击。它可以检查事件、检查行为并将系统恢复到攻击前的状态。EDR 使用人工智能、机器学习和威胁情报来避免再次发生攻…

矩阵分析 学习笔记4 内积与Gram矩阵

内积 定义 由于对称,第二变元线性那第一变元也线性了。例如这个:

Tomcat may not be running

一、问题背景 tomcat7运行在JDK1.7上,可启动tomcat,但是停止时报错误,如下: 二、适用条件 JDK1.7/JDK1.8 tomcat7 三、解决方法 1、查找java路径 which java 2、修改文件 找到/usr/lib/jvm/jdk1.7.0_80/jre/lib/security/j…

力扣P1706全排列问题 很好的引入暴力 递归 回溯 dfs

代码思路是受一个洛谷题解里面大佬的启发。应该算是一个dfs和回溯的入门题目&#xff0c;很好的入门题目了下面我会先给我原题解思路我想可以很快了解这个思路。下面是我自己根据力扣大佬写的。 我会进行详细讲解并配上图辅助理解大家请往下看 #include<iostream> #inc…

Java 注解详解:从基础到自定义及解析

注解&#xff1a;概述 目标 能够理解注解在程序中的作用 路径 什么是注解注解的作用 注解 什么是注解&#xff1f; 注解(Annotation)也称为元数据&#xff0c;是一种代码级别的说明注解是JDK1.5版本引入的一个特性&#xff0c;和类、接口是在同一个层次注解可以声明在包…

创意实现!在uni-app小程序商品详情页轮播中嵌入视频播放功能

背景介绍 通过uni-app框架实现商城小程序商品详情页的视频与图片轮播功能&#xff0c;以提升用户体验和增加商品吸引力。通过展示商品视频和图片&#xff0c;用户可以更全面地了解商品细节&#xff0c;从而提高购买决策的便利性和满意度。这种功能适用于各类商品&#xff0c;如…

Redis --- redis事务和分布式事务锁

redis事务基本实现 Redis 可以通过 MULTI&#xff0c;EXEC&#xff0c;DISCARD 和 WATCH 等命令来实现事务(transaction)功能。 > MULTI OK > SET USER "Guide哥" QUEUED > GET USER QUEUED > EXEC 1) OK 2) "Guide哥"使用 MULTI命令后可以输入…

嘉立创EDA-- 线宽、过孔和电流大小对比图

导线宽度和电流大小如何来考虑 1 电流大小需要考虑问题 1、允许的温升&#xff1a;如果能够允许的铜线升高的温度越高&#xff0c;那么允许通过的电流自然也就越高 2、走线的线宽&#xff1a;线越宽 &#xff0c;导线横截面积越大&#xff0c;电阻越小&#xff0c;发热越小&a…

影刀---实现我的第一个抓取数据的机器人

你们要的csdn自动回复机器人在这里文末哦&#xff01; 这个上传的资源要vip下载&#xff0c;如果想了解影刀这个软件的话可以私聊我&#xff0c;我发你 目录 1.网页对象2.网页元素3.相似元素组4.元素操作设置下拉框复选框滚动条获取元素的信息 5.变量6.数据的表达字符串变量列…

汽车免拆诊断案例 | 2016 款宾利GT车仪表盘上的多个故障灯点亮

故障现象 一辆2016款宾利欧陆GT车&#xff0c;搭载CYCB发动机&#xff0c;累计行驶里程约为4.5万km。据车主反映&#xff0c;发动机偶尔无法起动&#xff0c;仪表盘上的多个故障灯点亮&#xff08;图1&#xff09;。此外&#xff0c;刮水器、电动车窗及空调等电器设备功能失效…

代码随想录算法训练营第十一天|150. 逆波兰表达式求值 239. 滑动窗口最大值 347.前 K 个高频元素

150. 逆波兰表达式求值 根据 逆波兰表示法&#xff0c;求表达式的值。 有效的运算符包括 , - , * , / 。每个运算对象可以是整数&#xff0c;也可以是另一个逆波兰表达式。 说明&#xff1a; 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说&#xff0c…

vue3+element-plus icons图标选择组件封装

一、最终效果 二、参数配置 1、代码示例 <t-select-icon v-model"selectVlaue" />2、配置参数&#xff08;Attributes&#xff09;继承 el-input Attributes 参数说明类型默认值v-model绑定值string-prefixIcon输入框前缀iconstringSearchisShowSearch是否显…

注册安全分析报告:人民卫生音像

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

Footprint Growthly Quest 工具:赋能 Telegram 社区实现 Web3 飞速增长

作者&#xff1a;Stella L (stellafootprint.network) 在 Web3 的快节奏世界里&#xff0c;社区互动是关键。而众多 Web3 社区之所以能够蓬勃发展&#xff0c;很大程度上得益于 Telegram 平台。正因如此&#xff0c;Footprint Analytics 精心打造了 Growthly —— 一款专为 Tel…