UML-四种关系

【前言】

在画类图之前,首先要理清UML中的四大关系,不然后边学设计模式还是看类图都会有很大的障碍,四大关系包含:泛化(Generalization),  实现(Realization),关联(Association),依赖(Dependency)

【正文】

目录

【前言】

【正文】

一、四大关系介绍:

【 泛化(Generalization)】

【 实现(Realization)】

【 关联(Association) 】

【 依赖(Dependency) 】

二、四大关系比较:

1、【聚合】PK【组合】

2、【泛化】PK【实现】

3、【关联】PK【依赖】

三、总结:


一、四大关系介绍:

 

【 泛化(Generalization)

1.解释:是一种继承关系,是一个类(子类)继承另外一个类(父类)的功能,但子类还能够添加自己的新功能。

2.UML表示法:实线+空心箭头  (空心箭头指向父类)

3.实例说明:鸟属于动物类,鸟继承了动物类,但是鸟具有动物特征的同时还具有自己特有的功能。

 

 

【 实现(Realization)】

1.解释:是一种类与接口的关系,指的是一个类实现一个或多个接口的功能。

2.UML表示法:虚线+空心箭头(空心箭头指向接口)

3.实例说明:麻雀实现了飞翔的接口。

 

 

【 关联(Association) 】

1.解释:是一种结构化关系,是指一种对象和还有另一种对象有联系,给定关联的两个类,能够从当中的一个类的对象访问到另一个类的相关对象。关联又包括聚合(Aggregation)、组合(Composition)两大类。

1.1  聚合关系(Aggregation)

(1)聚合是表示整体与部分的关系聚合关系中的总体和部分是能够分离的,他们具有各自的生命周期。

(2)聚合用实线+空心菱形表示(空心菱形指向整体)

(3)比如:大雁跟雁群就是一种聚合关系,大雁是部分,雁群是整体,大雁有自己的生命周期,雁群也 有自己的生命周期,大雁离开雁群能生活,雁群离开某个大雁也能生存,可见它们是一种弱依赖关系。

 

1.2 组合关系(Composition)

(1)组合表示整体与部分的关系,整体拥有部分,此时整体和部分是不可分的,整体与部分具有相同的生命周期

(2)组合用实线+实心菱形表示(实心菱形指向整体)

(3)比如:大雁跟翅膀的关系,大雁是整体,翅膀是部分,他们具有相同的生命周期,大雁没了翅膀不能活,翅膀没了大雁也不能活,可见大雁跟翅膀是一种强依赖关系。

 

 

【 依赖(Dependency) 】

1.解释:表示一个对象在执行期间还会跟另一个对象存在关系。

2.UML表示法:虚线和箭头表示(箭头指向被依赖的对象)

3.实例说明:动物要生存需要依赖氧气、水和食物。

 

二、四大关系比较:

1、【聚合】PK【组合】

相同点:两者都表示‘拥有’的关系,区别:生命周期的长短。

【聚合】:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,他们的生命周期或许是不同的,A对象不随着B对象的消失而消失,两者可以独立存在。

【组合】:表示一种强的‘拥有’,他们是部分和整体的关系,他们的生命周期是相同的,A对象会随着B对象的消失而消失,二者是不能独立存在的。

关系强弱比较:组合>聚合

2、【泛化】PK【实现】

相同点:相当于继承。 子类继承父类,父类泛化子类。

关系强弱比较:泛化=实现

3、【关联】PK【依赖】

相同点:都表示依赖关系。区别:类之间关系的强弱程度和类之间关系的时间长短。

【关联】表示类之间的很强的关系,它表示类之间的“持久”关系,这种关系一般表示一种重要的业务之间的关系,需要保存的,或者说需要“持久化”的,或者说需要保存到数据库中的。

【依赖】表示类之间的较弱的关系,它表示类之间的是一种“临时、短暂”关系,这种关系是不需要保存的。

关系强弱比较:关联>依赖


得到关系强弱的比较:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

 

三、总结:

从上面的比较我们可以看出,依赖、关联、聚合、组合与泛化代表类与类之间的耦合度依次递增,依赖关系实际上一种比较弱的关联关系,聚合是一种比依赖较强的关联关系,组合是一种更强的关系,泛化则是一种最强的关联关系。

 

 

 

 

 

 

 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张铎(信念)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值