UML类图

一、简介

类图:类图其实就是展示类和类之间关系的一种静态模型图。它展现了一组对象、接口、协作和它们之间的关系,是面向对象系统的建模中最常见的图
关于UML工具网上很多,这里介绍一款。
starUML

二、UML中类的展示

在UML类图中,类用包含类名、属性和函数的长方形来表示。
在这里插入图片描述

1、UML规定属性的表示方式为: 可见性 名称:类型 = 默认值
  • 可见性:表示该属性对于别的类是否可见。包括公有(public)、私有(private)和受保护(protected)三种,在类图中分别用符号+、-和#表示。
  • 名称:属性名
  • 类型:属性的数据类型,可以是基本数据类型,也可以是引用数据类型。
  • 默认值:属性的初始默认值。
2、UML规定方法的表示方式为: 可见性 名称(参数列表): 返回值类型
  • 可见性:表示该属性对于别的类是否可见。包括公有(public)、私有(private)和受保护(protected)三种,在类图中分别用符号+、-和#表示。
  • 名称:方法名
  • 参数列表:方法中的传参
  • 返回值类型:方法的返回值类型;可以是基本数据类型,可以是引用数据类型
三、UML中类的关系
1、关联(Association)

关联是用来表示一个类的对象与另一个类的对象之间有联系。如果用编程语言(如java、c++等)来表示,就是一个类的对象作为另一个类的成员变量。通常情况下UML中的关联有如下几种形式:

  • 双向关联
    默认情况下,关联是双向的,用一条直线表示。
    例如:老师(Teacher)和学生(Student)之间就是一种关联的关系。
    老师(Teacher)可以拥有多个学生(Student),学生(Student)也可以拥有多个老师(Teacher)。
    在这里插入图片描述
  • 单向关联
    类的关联关系也可以是单向的,用一条呆箭头的实现表示。
    例如:商品(Goods)和订单(Order)之间就是一种单向关联。订单中包含商品的信息,但商品中不包含订单信息
    在这里插入图片描述
  • 自关联
    自关联说白了就是一些类的成员变量属性是该类的本身。典型的实例就是链表结构中的Node节点
    在这里插入图片描述
    关联还有一个很重要的方面,就是 关联基数:它表示两个关联的对象在数量上的对应关系。关联基数的表示方式如下表所示
表示方式关联基数含义
0…1表示另一个类的一个对象与该类的零个或一个对象有关系
1表示另一个类的一个对象只与该类的一个对象有关系
0…*表示另一个类的一个对象与该类的零个或多个对象有关系
1…*表示另一个类的一个对象与该类的一个或多个对象有关系
*这个表示数量没有限制,理论上表示无穷个

下面这幅UML图,就是关联基数的表示方法
在这里插入图片描述

2、聚合(Aggregation)

聚合关系其实也是关联关系的一种,它表示的是整体和个体之间的关系,整体和个体之间是可以分离的,即整体和个体拥有各自的生命周期。聚合比关联关系要强一些,因为关联关系只表示两者有关系,而聚合关系不仅仅表示两者有关系,更加强调的是两者之间是整体和个体的关系。
聚合关系用一条带空心菱形的一条直线表示。整体用菱形表示
例如:汽车轮胎(tyre)是汽车(Car)的组成部分
在这里插入图片描述

3、组合(Composition)

组合关系其实也是关联关系的一种,它也表示的是整体和个体之间的关系,但是整体和个体之间是不可以分离的,即整体和个体拥有相同的生命周期。它不仅比关联关系更强,而且比聚合关系更强。聚合关系整体和个体之间拥有各自的生命周期,但是组合关系是整体的生命周期决定了个体的生命的周期。
组合关系使用实心菱形箭头表示,菱形箭头指向整体。
例如:人和头的关系,谁也离不开谁
在这里插入图片描述

4、依赖(Dependency)

依赖关系表示一个类依赖于另一个类的定义,依赖总是单向的。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。
依赖关系使用带箭头的虚线表示,由依赖的一方指向被依赖的一方。
例如:司机开车,drive依赖Car的move方法
在这里插入图片描述

5、泛化(Generalization)

泛化关系其实就是继承关系。用来描述父类与子类之间的关系。
泛化关系用带空心三角形的直线来表示,空心三角形指向父类。
如下UML图:
在这里插入图片描述

6、实现(Realization)

实现是规格说明和其实现之间的关系。
泛化关系用带空心三角形的虚线来表示,空心三角形指向接口。
UML图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值