使用实例解释UML类图
使用实例解释UML类图
在我们的平常工作中,完成某个项目或者功能不可能直接打开项目讲解思路,更多的是使用某种图表来表达我们的思想,其中UML类图就是一种非常便利的手段。
UML类图基础知识
类图可以显示项目中不同类的属性、操作以及不同对象之间的关系。
首先给出一个实例UML类。
类图分三层,第一层为类名,第二层为成员属性,第三层为成员函数。
第一层
上图中该类的类名为:Socket,标记为<interface>(也可将Socket字段用斜体)表示该类为抽象类,否则为正常字体,无其他标记表示普通类。
第二层
成员属性表示格式为:符号 成员属性名 : 数据类型名。
其中,符号有三种,一种是"+":public(共有成员),一种是”-“:private(私有成员),一种是”#“:protected(保护成员)。包括第三层成员函数前面的”+“、”-“、”#“也是同义。
将# m_uvLoop : uv_loop_t*翻译为C++中类即为:
class Socket{protected:uv_loop_t* m_uvLoop;
}
第三层
成员函数表示格式为:[<<符号1>>] 符号2 函数名(符号3 形参名 : 数据类型,…) : 函数返回值。
其中,符号1可为:static或者const或者两者(表示函数是静态的或者const不变的)。
符号2同第二层所说。
函数名如果为斜体,则表示为纯虚函数/虚函数,否则为普通函数。
符号3可为:in(参数是一个输入参数)、inout(参数既为输入参数也为输出参数,传入传出值)、out(参数是一个输出参数)。
将<<static>> # UvOnAllocBuffer(in handle : uv_handle_t*, in size : size_t, in buf : uv_buf_t*) : void翻译为C++中的类即为:
class Socket{protected:static void UvOnAllocBuffer(uv_handle_t* handle, size_t size, uv_buf_t* buf);
}
TIPS:符号1关于表示函数是否为static或者const的表示方式以及函数名为斜体的含义,来源于互联网,不保证权威性以及正确性,仅供参考使用。
类与类之间的关系
参考链接:https://blog.csdn.net/q584401071/article/details/122201102
UML类图描述的是项目中类与类之间的关系,接下来博主从实际使用的角度出发,简要说明UML类图的各大关系。包括依赖、关联、聚合、组合、实现、继承。其中强弱关系:依赖 < 关联 < 聚合 < 组合 < 实现 = 继承。
依赖
人使用用计算机,在人这个类里面用到了计算机,说明二者是依赖关系。
TIPS:简单地说,就是类中某个成员函数的参数用到了某个类,那么就是依赖关系。注意连线表示及方向。
关联
如妻子和丈夫,老师和学生,学生和课程,两者需要对方,但是不是包含关系。关联既有单向又有双向。比如学生和课程关联,但是课程不和学生关联,学生需要用到课程,但是课程不需要用到学生。
TIPS:简单地说,两者不为包含关系,且一个类为另外一个类中成员属性容器中的元素,那么就是关联关系。注意连线表示及方向。
聚合
如大雁和雁群,一只只大雁组成雁群,但是大雁又能脱离大雁群而存在。这里需要注意大雁和大雁本身,如果一个雁群只有一个大雁,且不会有大雁增加,那么该群体就是一个特例,也就是说是一个单例,对应C++中的单例类。
TIPS:简单地说,两者必须为包含关系,且一个类为另外一个类中成员属性容器中的元素,那么就是聚合关系。注意连线表示及方向。
组合
大脑是人体的一部分,作为人体的一部分,即可以理解为作为成员而存在。两者从有这个对象就不可分离。
TIPS:简单地说,就是一个类作为另外一个类的成员属性而存在。那么就是组合关系。注意连线表示及方向。
实现
类比于C++的面向对象三大特性之一的动态多态,即虚函数。对抽象类进行实现。
TIPS:注意连线表示及方向。
继承
类比于C++的面向对象三大特性之一的继承。
TIPS:注意连线表示及方向。
应用
以下应用仅供参考,各类之间的连线关系可能存在错误,并未严格检查。
使用实例解释UML类图相关推荐
- 用 C++ 示例解释 UML 类图
如您所知,类图是显示系统中不同类的属性.操作以及不同对象之间关系的图. 即使我已经使用它很长时间了: 每次使用的时候总是很混乱. 这篇文章就是为像我这样的人准备的: 对初学者也有帮助,这里我将用C++ ...
- C++基础——用C++实例理解UML类图
类展示 基本概念及术语 可见性visibility 参数的方向parameter direction 类成员变量或者函数的类型 类关系 关系的多重性multiplicity 类关系 assocatio ...
- UML类图实例 (动物)
首先是复习一下UML中九种图的理解:http://xhf123456789plain.blog.163.com/blog/static/172880482201192222144421/ 画用例图:h ...
- UML类图符号标识符解释
来自:http://liuchuxiong2003.blog.sohu.com/168088327.html 类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态 ...
- uml类图设计系统详解实例
UML 类图 2009-11-21 14:03 by 闫妍, 1098 阅读, ... 评论, ...
- java uml类图举例,uml类图(uml类图实例作业)
原发布者:dzq21cn 第4章UML类图[学习目标]·定义类图·为什么要建模类图·类图的主要标记符号·如何建模类图4.1UML基本类图面向对象设计的基础就是使用类.. UML是统一建模语言,一般用来 ...
- UML类图关系大全 and 报表的基本用法
UML类图关系大全 1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在 GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描 ...
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- 浅谈UML类图中类之间的5种关系
什么是UML类图? 类图显示了一组类.接口.协作以及他们之间的关系.在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统.类加上他们之间的关系就构成了类图,类图中还可以包 ...
最新文章
- Flutter开发之《头条 Flutter iOS 混合工程实践》笔记(54)
- opencv图像清晰度计算_收藏|分析君带你认识Python中的十大图像处理工具
- iOS9 : Storyboard References
- flutter图片预览_Flutter 视频缩略图
- python 数字转十六进制_在Python中将整数转换为十六进制
- Wildfly Swarm,朝着成熟和一小部分贡献
- SocketServer模块,hmac模块验证client合法性
- instagram架构_如何创建像Instagram这样的照片共享应用程序:基本知识。
- 张平文院士:展示计算数学的魅力
- ipcp协议 Linux,Linux命令Man解释:PPPD(8) :点对点daemon协议
- 利用Flash读取SQL Server数据库的值
- oracle入门很简单豆瓣,Oracle入门经典
- cxgrid定位在第一行并显示内置编辑器
- Charles 4.2 HTTPS抓包,乱码设置,证书信任,证书安装
- 解决origin8 licience 过期问题
- android高仿微信表情输入与键盘输入(详细实现分析)
- 雷迪9000使用说明_雷迪司UPS监控软件使用说明中文
- 【HUST】网安|操作系统实验|实验一 内核编译、系统调用、编写批处理脚本
- 利用指针访问opencv Mat类型的矩阵,以及求椭圆方程的函数
- 开心一笑:关于金融贷款的幽默段子