UML类图(2 )UML类之间的关系

一、泛化关系(Generalization)

说明:这种关系就是面向对象语言中的继承关系,逻辑上可以用"is a"表示。

代码体现:子类继承父类。

UML符号:一条实线+空心箭头。
在这里插入图片描述
如图,学生类与教授类都继承于人这个大类。

二、实现关系(Realization)

说明:和泛化关系相似,逻辑上也是用"is a"表示。区别在于实现关系继承一个抽象类(abstract、interface),而泛化关系继承一个具体类。
代码体现:实现接口或继承某个抽象类。
UML符号:一条虚线+空心箭头。
在这里插入图片描述
飞翔是一个抽象的接口,大雁类实现了这个接口。

三、组合关系(Composition)

说明:是整体与部分的关系,但部分不能脱离整体而独立存在。逻辑上能用"has a"表示。

代码体现:成员变量。

【箭头及指向】:一条箭头实线+实心菱形,菱形指向被组合群体
在这里插入图片描述

四、聚合关系(Aggregation)

说明:是整体与部分的关系,部分能脱离整体而独立存在。逻辑上能用"has a"表示。

代码体现:成员变量

【箭头及指向】:一条箭头实线+空心菱形,菱形指向被聚合群体

在这里插入图片描述
大雁是一个单独的个体,可聚合成雁群。

五、关联关系(Association)
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子,子女与父母,逻辑上能用"has a"表示。

关联可以是双向的,也可以是单向的,也可以自关联。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者
在这里插入图片描述
老师类可以有学生属性,学生类可以有老师属性,但是课程类不包括学生属性。

六、依赖关系(Dependency)
说明:是一种使用关系,即一个类的实现需要另一个类的协助。逻辑上能用"use a"表示。
尽量不要使用双向依赖。
代码体现:局部变量、方法的参数和静态方法的调用。
UML符号:一条虚线+箭头。【依赖关系】:是一种使用的关系,所以要尽量不使用双向的互相依赖。

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者

没找到合适的图,大致就是我现在写文档需要用电脑。我这个“打工仔”类需要用“电脑”这个类

在这里插入图片描述

七、 总结
在这里插入图片描述
泛化(继承)描述为子类继承父类的属性和方法;

依赖表示为类A在类B的方法的参数当中有被使用,也可以描述为类A在类B中作为某个方法的返回值;

关联表示为类A在类B当中被引用,类A和类B是平级的;

组合可以表示为整体和部分的关系,部分离开整体就寄了(类比为人和人的四肢);

聚合可以表示为整体和部分的关系但是他们没有那么强的依赖关系,部分脱离整体仍然可以存活;

实现就是接口名里面的方法和实现接口的关系

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值