类之间的关系以及UML的表示

一、泛化Generalization/继承

泛化关系指的就是继承关系。

在UML中,泛化关系用带空心三角形的实线表示,由子类指向父类。
在这里插入图片描述

二、实现Realization

即实现接口。

在UML中,实现关系用带空心三角形的虚线表示,由实现类指向接口。
在这里插入图片描述

三、依赖Dependency

依赖关系是一种使用关系,表示在一个类中使用到了另外一个类;在大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。
在UML中,依赖关系使用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

示例:

驾驶员开车,在Driver类的drive()方法中将Car类型的对象Car作为一个参数传递,一遍在drive方法中能调用Car的move方法,且驾驶员的drive方法依赖车的move方法

在这里插入图片描述

四、关联Association

是一种拥有的关系,它使一个类知道另一个类的属性和方法。这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。在实现关联关系时,一般将一个类的对象作为另一个类的成员变量。

关联关系包括:单向关联双向关联自关联三种情况
对于类A和类B:

● 类A将类B的对象作为它的一个成员变量,类B中不含类A类型的成员变量,这种情况为单向关联,即A关联B;
● 类A中含有类B类型的成员变量且类B中含类A类型的成员变量,这种情况为双向关联;
● 类A中含有类A类型的成员变量,这种情况为自关联

在UML中,关联关系由实线或带箭头的实线表示。

● 双向关联:用实线表示;
● 单向关联:用带箭头的实线表示,由关联类指向被关联的类;
● 自关联:用带箭头的实线表示,由自己指向自己;

在这里插入图片描述

五、聚合Aggregation

表示部分与整体的关系,成员对象是整体的一部分,但成员对象可以脱离整体对象而独立存在。如汽车和轮胎,轮胎可以脱离汽车而单独存在,它们之间就是一种聚合关系;

在UML中,聚合关系使用带空心菱形的实线表示
在这里插入图片描述

六、组合关系

同样的,组合关系也表示部分与整体的关系,与聚合关系不同的是,组合关系中,成员对象不可以脱离整体对象而单独存在,比如头和嘴巴的关系就是一种组合关系,头不在了,那嘴巴自然而然也就不在了。

在UML中,组合关系使用带实心菱形的实线表示。
在这里插入图片描述

七、类关系的强弱

强弱关系:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
另外我们常常说的降低耦合性,也是降低类与类之间的关系。

八、类关系相关UML图汇总

在这里插入图片描述

九、参考链接:

https://juejin.cn/post/7017014503007059998
http://www.imooc.com/article/3915
书籍:《设计模式的艺术》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值