UML中的四大关系

在今天的这篇博文中,我来向大家介绍一下在UML学习中四大关系:关联关系(普通关联关系/聚合关系/组合关系)、依赖关系、泛化关系、实现关系。这些关系集中体现在UML中的类与类、类与接口、接口与接口之间的相互联系中。

依赖(Dependency)关系:

1.UML表示法:虚线+箭头

2.关系:“…use a …”

3.解释:是类与类之间连接的一种,表示一个类依赖于另一个类的定义。简单的理解,就是一个类A使用了另一个类B,B只是作为一个工具被A使用。

4.释义:一个人想要过河,但是需要一条船,那么人要想过河就得依赖一条船的作用,所以此时人与船之间的关系就是依赖;


 

泛化(Generalization)关系:

1.UML表示法:实线+空心箭头

2.关系: “…is kind of…”

3.解释:也称继承关系,是一个类(称为子类/子接口)继承另外的一个类(称为父类/父接口)的功能。继承是类与类或者接口与接口之间最常见的关系;

4.释义:汽车是交通工具的一种,也就是汽车类继承了交通工具类。此时汽车与交通工具之间的关系就是继承。


实现(Realization)关系:

1.UML表示法:虚线+空心箭头

2.关系:“…realize…”

3.解释:指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系。也就是元素A定义一个约定,元素B实现这个约定,则AB的关系即为实现:Brealize A

4.释义:人要参加一个活动,就必须遵守这个活动的一些约定,比如用餐。


关联(Association)关系:

.基本关联(Association)关系:

1.UML表示法:实线+箭头

2.关系:“…has a…”

3.解释:表示类与类之间的联接,所谓的关联就是某个对象会长期的持有另一个对象的引用,使一个类知道另一个类的属性和方法,而二者的关联往往也是相互的。但是关联的两个对象彼此间没有任何强制性的约束。可以用单双箭头表示单向或双向关联,不建议使用双向关联。在关联的两个端点,每个端点可以有一个基数,表示这个关联的类可以有几个实例。

常见的基数及含义:

0..10或者1个实例

0..*…对实例的数目没有限制

1…只能有一个实例

1..*…至少有一个实例

4.释义:一个人可以有很多朋友,然而没有理由认为朋友的生死与我的生死有必然的联系,所以他们的生命期没有关联,而且我的朋友又可以是别人的朋友。


.聚合(Aggregation)关系:

1.UML表示法:空心菱形+实线+箭头

2.关系:整体-部分

3.解释:是强的关联关系,是整体和个体之间的关系,但是整体与部分之间是可以分离的,有各自的生命周期,部分可以属于多个整体对象

4.释义:比如机器和引擎,计算机和CPU,公司与员工之间的关系。


.组合(Composition)关系:

1.UML表示法:实心菱形+实线+箭头

2.关系:“…is a partof…”

3.解释:是比聚合关系还强的一种关联关系,也是整体和部分的关系,但是代表整体的对象负责代表部分的对象的生命周期。如果整体不存在,则部分一定不存在。即部分不可以脱离整体而存在。

4.释义:比如Listnode,没有Listnode不复存在。或者人与其大脑。

至此,在UML中所涉及到的各种关系都已经讲述完毕,这样看来各种关系在类别上可以分为两种:纵向关系和横向关系,纵向关系就是继承关系,概念非常明确;横向关系就比较微妙,按照UML的建议大体上可以分为四种:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition)。

他们之间的强弱关系是没有异议的:依赖<关联<聚合<组合

然而他们之间的差别却需要我们好好体会,在实践中长经验。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
UML(统一建模语言),有几种见的关系类型,它们用于描述类与类之间、对象与对象之间的关联和交互。以下是UML的几种关系类型: 1. 关联(Association):表示类之间的静态关系,描述了对象之间的连接。关联可以是双向的,也可以是单向的,可以是一对一、一对多或多对多的关系。 2. 聚合(Aggregation):表示整体与部分之间的关系,是一种弱关联关系。聚合关系,整体对象可以包含部分对象,但部分对象可以独立存在。 3. 组合(Composition):也表示整体与部分之间的关系,但是组合关系,整体对象负责创建和销毁部分对象,并且部分对象的生命周期与整体对象相关联。 4. 依赖(Dependency):表示一个类依赖于另一个类的定义或实现。当一个类的变化会影响到另一个类时,就存在依赖关系。 5. 继承(Inheritance):表示一个类继承另一个类的属性和方法。继承关系,子类可以继承父类的特性,并且可以添加自己的特性。 6. 实现(Realization):表示一个类实现了一个接口或抽象类的定义。实现关系,类需要实现接口或抽象类定义的方法。 7. 依赖关系(Dependency):表示一个类使用了另一个类的对象作为参数、局部变量或返回值。 8. 信号(Signal):表示对象之间的异步通信。 以上是UML的几种常见关系类型,它们用于描述类与类之间的关联和交互。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值