C++中的UML类图

简介: C++中的UML类图

1.什么是UML?


UML即统一建模语言,它是用于开发、说明、可视化与构建一个面向对象软件的一种方法。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。UML类图将用户所希望描述的事物抽象为类,描述类的内部与多个类之间的设计视图。为之后学习各种设计模式打下基础,因为我们可以通过一种直观的表示方法来描述设计模式。


2.UML模型结构


UML是一种主要由图形符号表示的建模语言,其结构主要包括:


视图:从不同角度来表示待建模的系统,视图是由很多图形组成的一个抽象集合;一个系统模型可能有多个视图,每个视图从特定角度来描述系统的特征,比如用户视图、结构视图、行为视图、实现视图等。


:图是UML视图内容的图形,比如用例图、类图、对象图、包图等。


模型元素:UML图中使用的一些概念,如类、对象、消息以及各种关系等。


通用机制:UML提供的通用机制为模型元素提供额外的注释、语义和扩展机制,允许用户对UML进行扩展。


3.UML中类的表示



类是由一个矩形框表示的,矩形框分为三层。如下图所示:

35.png


第一层:类的名称,如果该类是抽象类,则使用斜体;

第二层:类的属性,即成员变量。格式为:[外部可见性]名称:类型[=默认值];

第三层:类的方法,即成员函数。格式为:[外部可见性]名称([参数列表])[:返回值类型];


外部可见性说明:


-:private(私有)

+:public(公有)

#:protect(保护)

34.png


4.UML中类之间的关系



4.1 泛化


含义:类的继承关系


表示:用空心三角形和实线构成,空心三角形指向父类;


举例:狗和猫都属于动物类。

33.png

4.2 实现


含义:类与接口的关系,表示类是接口所有特征和行为的实现。


表示:用空心三角形和虚线表示,空心三角形指向接口。


举例:狗和猫实现了动物的吃和跑的接口。

32.png

4.3 关联


关联是一种拥有(has a)关系,一个类可以调用另一个类的公有属性和方法。在类中以成员变量的方式表示。例如老板有自己的员工,知道自己员工的姓名、员工卡号、绩效等;员工有自己的老板,也知道老板的姓名和所属部门。关联分为单向关联、双向关联和自关联。


(1) 单向关联

含义:只有一个类知道另一个类的公有属性和方法。


表示:带箭头的直线表示。


举例:员工都有自己的地址。

31.png


(2) 双向关联


含义:双方都知道对方的存在,都可以调用对方的公有属性和方法。


表示:用一条直线连接两个类,也可以用双箭头。


举例:老板有自己的员工,员工也有领导自己的老板。

30.png


(3) 自关联


含义:自己引用自己


表示:带箭头的直线,指向自己。


举例:二叉树结构体。

29.png


(4) 多重关联


含义:对象之间存在多种多重性关联关系,如下表所示。

28.png


4.4 聚合


含义:整体与部分的关系,部分离开整体后可以单独存在。常用于类的成员变

量。


表示:带空心的菱形和直线(或者带箭头的直线),箭头指向部分。


举例:汽车和轮胎,轮胎是汽车的一部分,但轮胎也可以单独存在。


27.png


4.5 组合

含义:整体和部分的关系,部分离开整体后不可以单独存在,代表整体的对象负责代表部分的对象的生命周期。常用于类的成员变量。


表示:带实心的菱形和直线(带箭头的直线),箭头指向部分。


举例:公司和部分,部门是公司的一部分,但部门不可以单独存在。

26.png



4.6 依赖


含义:是一种使用的关系,即一个类的实现需要另一个类的协助。常用于类方法的局部变量、方法参数等


表示:带箭头的虚线,箭头指向协助的类。


举例:动物依赖水

25.png


5.关联、组合、聚合与依赖的区别


关联代表类与类的关系;

     聚合和组合代表整体与部分的关系;

     依赖是一种弱的关系,表示一个类的方法的实现需要用到另一个类,但二者之间并没有明显的关系

相关文章
|
6月前
|
uml
UML之类图
UML之类图
97 1
|
6月前
|
数据可视化 Java uml
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
302 1
|
3月前
|
Java uml
使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实
该博客文章通过UML类图和Java代码示例,展示了如何使用工厂方法模式设计一个支持加法、减法、乘法和除法运算的计算机程序,并严格按照类图设计实现程序。
|
3月前
|
Java uml
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
该博客文章展示了如何使用简单工厂模式设计一个程序,该程序能够根据用户输入的运算符(加、减、乘、除)对两个数进行计算,并提供了相应的UML类图和Java源码实现。
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
|
5月前
|
应用服务中间件 uml
【UML】软件工程中常用图:类图、部署图、时序图、状态图
【UML】软件工程中常用图:类图、部署图、时序图、状态图
591 1
|
3月前
|
数据可视化 Java uml
精通UML:从类图到序列图的实战指南
【8月更文第23天】统一建模语言(Unified Modeling Language, UML)是一种用于软件工程的标准图形化语言,它提供了一套工具来帮助开发团队可视化、构造和文档化软件系统。在UML中,类图和序列图是最常用也是最重要的两种图。类图用于描述系统的静态结构,而序列图则用于表示对象之间的交互和系统的动态行为。
164 5
|
3月前
|
设计模式 uml
设计模式常用的UML图------类图
这篇文章介绍了UML中类图的基本概念和用途,详细解释了类与接口、类之间的关系,包括继承、实现、组合、聚合、关联和依赖等六种关系,并展示了它们在类图中的表示方法。
设计模式常用的UML图------类图
|
3月前
|
C++
生成c++ 类图
生成c++ 类图
43 0
|
3月前
|
uml
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
329 0
|
6月前
|
设计模式 数据可视化 程序员
软件设计模式:UML类图
软件设计模式:UML类图
154 1