小知识,大挑战!本文正在参与“ 程序员必备小知识 ”创作活动
本文同时参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金
👨🎓作者:Java学术趴
💌公众号:Java学术趴
🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。
🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。
☠️每日毒鸡汤:你可怀疑任何人,但绝不要怀疑你自己。
👋大家好!我是你们的老朋友Java学术趴,今天给大家分享UML图以及其中最重要的UML类图的几大关系,几分钟交会大家如何制作出UML类图。在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。
3. UML
- UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助开发人员进行思考和记录思路的结果。
- UML本身是一套符号的规定,就像数学与化学符号,这些符号用来表示各个元素之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。
- UML可以画时序图、用例图、类图。
3.1 UML类图
- 用于描述系统中的类(对象)本身的组成和类(对象)之间各种静态关系。
- 类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。
3.2 类图—依赖关系
- 只要在类中用到对方,那么他们之间就存在依赖关系,如果没有对方,连编译都通过不了。
类中用到对方的地方:
- 类的成员属性
- 方法的返回类型
- 方法接收的参数类型
- 方法中使用到
依赖使用虚线箭头,箭头指向依赖者
3.3 类图—泛化关系
-
泛化关系实际上就是继承关系,他是依赖关系的特列。
-
泛化就是继承关系。
-
如果A继承了B,我们就说A和B存在泛化关系。
泛化使用实线空心箭头,箭头指向继承类
3.4 类图—实现关系
- 实现关系就是A类(实现类)实现了B类(接口),他就是依赖关系的特例。
实现关系使用虚线空心箭头,接口指向接口
3.5 类图—关联关系
- 关联关系实际上就是类与类之间的联系,他就是依赖关系的特例。
- 关联具有导航性:即双向关联或单项关联
- 关联具有多重性:一对多,一对一,多对一,多对多。
关联使用实线箭头(单向关联)或者实线没有箭头(双向关联),箭头指向被调用者
可以通过上图看出,Person类中使用了IDCard类,但是IDCard类中没有使用到Person类,此时是单项一对一,并且存在箭头,这个箭头指向被调用的类。
而在第二个中,他们之间的类互相调用,所以此时是双向一对一关系,此时不存在箭头。
3.6 类图—聚合关系
- 聚合关系表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所有它具有关联的导航性和多重性。
例如:一台计算机的键盘和显示器是可以从计算机中拆分出来的,使用带空心菱形的实线表示。(空心菱形从部分指向整体)
聚合使用空心的菱形箭头,箭头指向调用者
3.7 类图—组合关系
-
组合也是整体与部分的关系,但是整体与部分不可以分开。(比如人与脑袋,就是组合关系)
-
如果类中的成员变量不可以与整体类分离,就称为组合。比如上边的鼠标类如果不能与计算机分离,那么就是组合关系。(此时是new的对象,当Computer类加载时,鼠标类也会加载,当计算机类消失的时候,鼠标类也会随之消失,此时存在组合关系)
- 组合使用的是实体的菱形箭头表示,箭头指向调用者。
区分组合与聚合:
- 人的身体与人不可以拆分的,所以此时就是组合关系。
- 人的身份证与人是可以拆分的,此时是聚合关系。
---💘看完的大佬们可以关注一下小编,会一直更新小技巧,免费分享给大家呦!!!💝--




近期评论