关系
- 泛化(Generalization):使用关键字extends表示
记忆:实线三角
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=Java%E5%9F%BA%E7%A1%80_md_files%2F5b5a850
0-1dc0-11ef-8496-038d0f675d6a.jpeg%3Fv%3D1%5C%26type%3Dimage&pos_id=img-mHjzVY9f-1717074615573)
- 实现(Realization):使用关键字implements表示
记忆:虚线三角
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=Java%E5%9F%BA%E7%A1%80_md_files%
2F84514660-1dc0-11ef-8496-038d0f675d6a.jpeg%3Fv%3D1%5C%26type%3Dimage&pos_id=img-oyjuncXA-1717074615574)
- 聚合(Aggregation):整体和部分的关系,弱依赖,整体不存在部分还是存在
记忆:空菱形
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=Java%E5%9F%BA%E7%A1%80_md_files在这里插入图片描述
%2Fbe316810-1dc0-11ef-8496-038d0f675d6a.jpeg%3Fv%3D1%5C%26type%3Dimage&pos_id=img-46cMQlMc-1717074615574)
- 组合(Composition):整体和部分的关系,强依赖。整体不存在,部分也不存在
记忆:实菱形
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=Java%E5%9F%BA%E7%A1%80_md_files%2F05461f70-1dc1-11ef-8496-038d0f675d6a.jpeg%3Fv%3D1%5C%26type%3Dimage&pos_id=i
mg-bgO0eTla-1717074615575)
- 依赖(Dependency):强调在运行过程中进行的
记忆:虚线箭头
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=Java%E5%9F%BA%E7%A1%80_md_files%2F3c6074f0
-1dc2-11ef-8496-038d0f675d6a.jpeg%3Fv%3D1%5C%26type%3Dimage&pos_id=img-Y3Ph8mtI-1717074615576)
A类和B类的依赖关系有三种:
-
A类是B类(于某方法)中的局部变量
-
A类是B类方法参数
-
A类向B类发送消息,B类状态发生改变
- 关联(Assocation):在运行之前就决定好的,比如学校和学生关系是1对多
记忆:线条两侧有关联标识
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
使用场景:考试中、编写代码时、学习设计模式、开源代码阅读…
笔者看法:在平时学习工作中,随着编码和阅读源码的深入,对以上关系的掌握会愈发熟练,不必刻意死记硬背,切记不要学死知识~