MongoDB makefile Vue全家桶 主从复制 ros 打印 sdk orm webforms cuda vue前端框架 pmp教学视频 android项目实例 外卖系统源码 软件测试项目实战案例 cmd查看mysql版本 python零基础教程 python中不等于 python怎么下载 python运行 java类与对象 java中数据类型 java程序设计教程 linuxcat命令 linux下载安装 电子书之家 服务器操作系统下载 忧思华光玉攻略 免费书籍 隐藏进程 电子书制作软件 手机知识 ip地址转换器 VSPD ps3d字体 bz2解压 男网红头像 求字符串长度 linux格式化硬盘 商标查询软件 七彩虹网驰版为什么坑
当前位置: 首页 > 学习教程  > 编程语言

软件设计、源码阅读之必备技能UML类图的绘制和理解

2020/7/24 11:21:14 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

文章目录

      • 类图中类的属性或方法的关键字修饰符
      • 类图中的类、接口、枚举
        • 接口
        • 枚举
      • 类图中类之间的关系
        • 泛化
        • 实现关系
        • 关联
        • 聚合
        • 组合
        • 依赖
      • 总结

类图中类的属性或方法的关键字修饰符

代码里类的属性或方法的关键字在类图里用以下方式表示:

  • -中划线表示private
  • #表示protected
  • ~表示default,也就是包权限
  • _下划线表示static
  • 斜体表示抽象

类图中的类、接口、枚举

类图中的类,用一个三层矩形来表示,第一层为类的名称、第二层内容是类的属性(成员属性)、第三层为类的行为(方法)。

image-20200723215037471

接口

UML内接口默认是使用一个圆形的图案加名称表示,但是很不直观,我们也可以用三层矩形的方式进行表示,在名字上方加上《interface》区分

image-20200723220032441

枚举

UML类图内枚举的表现形式和接口的类似

image-20200723220407114

类图中类之间的关系

UML类图中把对象之间的关系大致分为以下几种:泛化(Generalization)、实现(Realization)、关联(Association)、聚合(Aggregation)、组合(Composition)、依赖(Dependency)

这里使用StarUML绘制,引用《大话设计模式》里面的一个类图进行讲解类图绘制中各个关系的处理:

动物类图

泛化

泛化(Generalization)表示类与类之间的继承关系,表示一般和特殊的关系。它指定了子类如何特化父类的特征和行为。

继承(泛化)表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。

在UML里继承(泛化)关系使用一个空心三角形箭头+实线 表示:鸟继承动物对象,鸟类继承了动物父类的属性:有生命,行为:新陈代谢、繁殖。自己特有的新属性有羽毛、没有牙齿、会下蛋

image-20200724100048537

实现关系

实现表示一个class类实现一个或多个interface接口的功能,表示类是接口所有特征和行为的实现,在UML类图中根据接口的不同表现形式,实现接口有两种表现形式

(1) 矩形接口图:使用空心三角形箭头+虚线表示:大雁会飞,实现飞翔接口

(img-AvfZeQ9o-1595560520588

(2)圆形接口图:又称棒棒糖表示法,使用实线连接圆形接口图表示:唐老鸭实现说人话接口

image-20200724104018298

关联

对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系

在UML类图中,关联关系使用实线+箭头表示:企鹅对气候有很大关联,企鹅必须要知道气候信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xsa7o3ti-1595560520591)(C:%5CUsers%5Cyangxh%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20200724104943875.png)]

聚合

表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不一定是A对象的一部分。 两个对象具有各自的生命周期

在UML类图中,聚合关系使用空心菱形+实线表示:雁群聚合了一堆大雁对象,每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。

image-20200724105437176

组合

组合是一种强的拥有、组成关系,体现了严格的部分和整体关系,部分和整体的生命周期一样

在UML类图中组合关系用实心菱形+实线表示:鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的

image-20200724105804441

依赖

对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者方法、行为依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系

在UML类图中,依赖关系使用虚线箭头表示:动物需要依赖氧气和水才能新陈代谢

image-20200724104505004

总结

根据上述类图笔者总结出以下表格,方便理解和记忆:

泛化(继承) 空心三角形箭头+实线 表示类与类之间的继承关系,表示一般和特殊的关系。它指定子类如何特化父类的特征和行为
实现 空心三角形箭头+虚线/实线连接圆形接口图 表示指定类是指定接口所有特征和行为的实现
关联 实线+箭头 对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系
聚合 空心菱形+实线 表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不一定是A对象的一部分
组合 实心菱形+实线 组合是一种强的拥有、组成关系,体现了严格的部分和整体关系,部分和整体的生命周期一样
依赖 虚线箭头 对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者方法、行为依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系

本文链接: http://www.dtmao.cc/news_show_50411.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?