UML - 类图

2020/09/06

本文总结一下UML类图的用法,主要包含基本结构、可见性、类关系和多重性,如图:

Basic

首先,我们先来看下类图的定义:

In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system’s classes, their attributes, operations (or methods), and the relationships among objects.

类图UML中的一种静态结构图,它的作用是通过展示系统中的类、及其成员变量和方法、对象之间的关系来描述整个系统的结构。

然后,我们来看下类图的基本结构:

主要由以下三部分组成:

  • 类名
  • 类成员变量
  • 类方法

Visibility

在上图中,成员变量和方法的最左侧有-+符号,那么它们有什么含义呢?

它们其实指定了类成员的可见性,与Java类似,主要有以下四种:

  • ~: Package / Default
  • +: Public
  • -: Private
  • #: Protected

Relationships

再来看下类之间的关系:

Inheritance

表示两个类拥有继承关系:

Association

表示类之间的存在某种关系,如:航班与飞机、乘客与地铁等。

Aggregation

AggregationAssociation中更为具体的一种表示方式。

当一个类作为其他类的集合或容器时,就会发生Aggregation

但是被包含的类的生命周期并不会依赖于该容器,所以即使容器类被销毁,被包含的类仍存在。

比如: 图书馆与书,即使图书馆不存在了(翻修),书仍可以存放在仓库中。

Composition

CompositionAggregation类似,区别是:

当容器类被销毁时,它的被包含的类也会销毁。

比如: 一间房子中有卧室、厨房、阳台等,一旦房子被拆,那么其组成部分均被销毁。

Multiplicity

最后介绍下类与类之间的数量匹配关系,一般有以下五种:

  • 0..1: 零或一
  • n: 固定数量
  • 0..*: 零或多个
  • 1..*: 一或多个
  • m..n: 指定范围

比如:

  • 一笔订单只能有一笔订单详情记录。
  • 一个用户可以有零或多笔订单。

Reference


一位喜欢提问、尝试的程序员

(转载本站文章请注明作者和出处 姚屹晨-yaoyichen

Post Directory