type
status
category
date
slug
summary
tags
icon
Last edited time
May 21, 2023 07:57 AM
UML简介类图元接口类间关系继承(Generalization)实现(Realization)关联(Association)聚合(Aggregation)组合(Composition)依赖(Dependency)
UML简介
UML,统一建模语言「Unified Modeling Language」,是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
类图元

一个完整的类图元
第一行是类的名称
第二行是类的属性
第三行是类的方法

属性前符号的含义
+表示public
-表示private
#表示protected
~表示default(包
_表示static
斜体表示抽象
接口
第一种表示方式:接口图


第二种表示方式:“棒棒糖表示法”

类间关系

继承(Generalization)
- 介绍:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
- 表示方式:使用空心三角形与实线表示,由子类指向父类,或者子接口指向父接口
例子:货车继承汽车

实现(Realization)
- 介绍:实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系。
- 表示方式:实现用一条带空心三角箭头的虚线表示,从类指向实现的接口
例子:


关联(Association)
- 介绍:对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。
- 表示方式:关联关系用实线箭头表示。
例子:
- 请忽略"牛"

聚合(Aggregation)
- 介绍:聚合是关联关系的一种特例,它体现的是整体与部分的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。
- 表示方式:聚合关系用空心的菱形+实线箭头表示。
例子:

组合(Composition)
- 介绍:组合也是关联关系的一种特例,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。
- 表示方式:组合关系以实心菱形加实线箭头表示
例子:

依赖(Dependency)
- 介绍:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
- 表示方式:
例子:依赖关系用虚线箭头表示。

- 作者:Jimmy Huang
- 链接:https://huangjihao.com/16996783-5aec-4ae8-a5b0-c80728d5caf8
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。