UML类图

UML


简介

UML(Unified Modeling Language,统一建模语言) 可以帮助我们表示软件的结构:不同的模块、类和对象如何交互,以及他们之间的关系是什么。

在UML中,可以定义系统的结构和行为,并且可以通过图表的可视化全部或者部分模型。有两种类型的图表:

  1. 结构图用于表示系统的结构。
  2. 行为图用于描述系统的行为。



类之间的关系

1. 泛化(Generalization)

是一种继承关系,而继承也被称为Is-A关系,因为从一个另一个类继承而来的类能够被当成父类来使用。

当一个类表示多个类的共享特征时,这成为泛化; 类似地,当一个类表示一般类的特殊实例时,这成为特化

UML表示:带三角箭头的实线,箭头指向父类。

泛化




2. 实现(Realization)

是一种类与接口的关系

UML表示:带三角箭头的虚线,箭头指向接口。

实现




3. 依赖(Dependency)

用于定义一个类以某种方式依赖于另一个类,而另一个类可能依赖于或不依赖于第一个类。依赖关系有时被称为Uses-A关系。

用来描述一个类在方法声明中是否包含第二个类的参数,或者说它只是通过方法将第二个类传递给其他类,而不是使用方法来创建第二类的实例。

UML表示:带普通箭头的虚线,指向被使用者。

在这里插入图片描述




4. 关联(Association)

表示两个实体之间的关系。可能是一对多,也可能是一对一,也可能是多对多。

有两种类型的关联:组合聚合

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

UML表示:带普通箭头的实心线,指向被拥有者。

1) 聚合(Aggregation)

聚合用于描述以下情况中的两个类或多个类之间的关系:①一个类在逻辑上包含另一个类,但所包含的类的实例又可以独立于第一个类在其上下文之外生存;或者②可以被其他的类所引用。(即整体与部分的关系,整体与部分 可以分开)

可以将聚合视为Has-A关系。

例如,每位教师必须属于部门,但如果部门不再存在,教师仍可以处于活动状态。

UML表示:带空心菱形的实心线,菱形指向整体。

@startuml
Car o-- Engine

class Car{
    - name:String
    + make(Engine engine):void
}
@enduml

在这里插入图片描述

2)组合(Composition)

也是整体与部分的关系,但是整体与部分不可以分开。

可以将聚合视Contains-A关系。

UML表示: 带实心菱形的直线,菱形指向整体。

@startuml
Head *-- Ear

Head *-- Eye
@enduml

在这里插入图片描述






各种关系的强弱顺序



泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值