2021-11-07

本文详细介绍了UML类图中的各种关系,包括依赖、关联、聚合、组合、泛化(继承)和实现。依赖是最弱的关联,表示一个类使用另一个类。关联是对象之间的引用关系,可以是单向或双向的。聚合是整体与部分的关系,部分可以独立存在。组合是更强烈的聚合形式,部分与整体生死与共。泛化表示继承关系,实现则指类对接口的实现。这些关系对于理解和设计软件系统至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类图属性

一个大矩形里面分三层:

  • 类名
  • 成员名:可见性 名称 :类型 [ = 默认值]
  • 方法名:可见性 名称(参数列表) [ : 返回类型]
    在这里插入图片描述
    可见性:
  • +:表示public
  • -:表示private
  • #:表示protected(friendly也归入这类)

类之间关系

1、依赖

依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。

人依赖手机:
在这里插入图片描述
依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,被使用对象的有无,不影响使用对象,是临时性的关联。

2、关联

依赖关系使用带箭头的实线来表示,箭头从使用类指向被关联的类,可以单向关联,也可以双向关联。

双向的关联可以用带两个箭头或者没有箭头的实线来表示,单向的关联用带一个箭头的实线来表示。

老师和学生双向关联:每个老师可以教多个学生,每个学生也可向多个老师学
在这里插入图片描述
关联(Association)关系是对象之间的一种
引用关系
,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。被引用者不存在时,引用者可以存在,但是没有意义。

3、聚合

聚合关系可以用带空心菱形的实线来表示,菱形指向整体。

大学包含教师:
在这里插入图片描述

聚合(Aggregation)关系是关联关系的一种,是强关联关系,是整体和部分之间的关系,是 has-a 的关系。当部分类不存在,整体类也不能存在,但是部分可以脱离整体而独立存在。比如大学不能脱离教师而存在,但是没有大学教师依然能够独立存在。

4、组合

组合关系用带实心菱形的实线来表示,菱形指向整体
头和嘴:
在这里插入图片描述

在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象也不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。

5、泛化

泛化关系用带空心三角箭头的实线来表示,箭头从子类指向父类。

人和学生、老师:
在这里插入图片描述

泛化(Generalization)关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系,是 is-a 的关系。

6、实现

实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口

鸟和飞:
在这里插入图片描述

实现(Realization)关系是接口与实现类之间的关系。在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作。可以将实现类看做方法。

参考:
https://www.cnblogs.com/shindo/p/5579191.html
https://blog.youkuaiyun.com/sinat_21107433/article/details/102576624
http://c.biancheng.net/view/1319.html
https://www.jianshu.com/p/641682f9c918

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值