目录

先看下面这张类图,包括了UML类图的基本图示法

1、类的表示

2、接口的表示

3、继承关系

4、实现接口

5、关联关系

6、聚合关系

7、合成(组合)关系

8、依赖关系


先看下面这张类图,包括了UML类图的基本图示法

1、类的表示

首先看那个‘动物’矩形框,它就代表一个类(Class)。 类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。注意前面的符号,‘+' 表示public, '-' 表示private,“#' 表示protected.”

2、接口的表示

然后注意左下角的‘ 飞翔’,它表示一个接口图,与类图的区别主要是顶端有《interface》显示。第一行是接口名称,第二行是接口方法。接口还有另种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了‘讲人话’的接口。

3、继承关系

继承关系:使用 空心三角形 + 实线 表示

4、实现接口

实现接口:使用 空心三角形 + 虚线 表示

5、关联关系

企鹅需要“知道” 气候的变化。当一个类“知道” 另一个类的时候,可以使用关联。关联关系用实线箭头表示。

(在“企鹅”类中有一个属性为“气候”对象)

6、聚合关系

我们再来看大雁与雁群这两个类,大雁是群居动物,每只大雁都是属于一个雁群,一个雁群可以有多只大雁。所以它们之间就满足聚合(Aggregation) 关系聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用 空心的菱形 + 实线箭头 来表示。”

7、合成(组合)关系

合成(Composition,也有翻译成‘组合’的)是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样[DPE]。在这里鸟和其翅膀就是合成(组合)关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。合成关系用实心的菱形+实线箭头来表示。另外,你会注意到合成关系的连线两端还有一个数字'1' 和数字‘2', 这被称为基数。表明这一端的类可以有几个实例,很显然,一个鸟应该有两只翅膀。如果一个类可能有无数个实例,则就用‘n'来表示。关联关系、聚合关系也可以有基数的。

8、依赖关系

动物几大特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物依赖于氧气和水。他们之间是依赖关系(Dependency),用虚线箭头来表示。

uml类图例子_五分钟带你读懂UML类图相关推荐

  1. 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器

    前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就 ...

  2. 优先队列默认是小顶堆吗_一分钟带你读懂什么是堆?

    堆其实就是一种特殊的队列--优先队列. 普通的队列游戏规则很简单:就是先进先出:但这种优先队列搞特殊,不是按照进队列的时间顺序,而是按照每个元素的优先级来比拼,优先级高的在堆顶. 这也很容易理解吧,比 ...

  3. 一分钟带你看懂UML图

    一分钟带你看懂UML图 小小demo package Test;/*** @Description:* @ProjectNmae: demo1* @PackageName: Test* @ClassN ...

  4. 三分钟带你读懂 BERT

    本文为 AI 研习社编译的技术博客,原标题 : BERT Technology introduced in 3-minutes 作者 | Suleiman Khan, Ph.D. 翻译 | 胡瑛皓.s ...

  5. java ee 值范围_一篇文章带你读懂: Java EE

    原标题:一篇文章带你读懂: Java EE 点击上图,查看教学大纲 何为 Java EE Java EE是一个标准中间件体系结构 不要被名称"Java PlatformEnterprise ...

  6. 干货:五分钟带你看懂NestedScrolling嵌套滑动机制

    Android NestedScrolling嵌套滑动机制 Android在发布5.0之后加入了嵌套滑动机制NestedScrolling,为嵌套滑动提供了更方便的处理方案.在此对嵌套滑动机制进行详细 ...

  7. elm分类器功能_一文带你读懂线性分类器

    本文为 AI 研习社编译的技术博客,原标题 : Linear Classifier 作者 | Thomas Pernet 翻译 | 邓普斯•杰弗.涂世文.Disillusion 校对 | 邓普斯•杰弗 ...

  8. au加载默认的输入和输出设备失败_一文带你读懂 C/C++ 语言输入输出流与缓存区...

    (给CPP开发者加星标,提升C/C++技能) 作者:技术让梦想更伟大 / 李肖遥 (本文来自作者投稿) 前言 有没有发现,基本上所有的C语言入门书籍,或者是我们的教程里面,第一个C语言程序实体,都是& ...

  9. uml类图例子_转:(中文命名)UML类图新手入门级介绍

    下文转于 2019-05-10.2020-03-10 发觉本出自2007 年出版的<大话设计模式>一书(作者: 程杰)第一章.于是将文末原链接删去. 转载注: 中文命名的优势在UML图这样 ...

最新文章

  1. ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type
  2. 多线程及相关面试题与拓展
  3. C#.NET操作数据库通用类(MS SQL Server篇)
  4. 201521123017 《Java程序设计》第4周学习总结
  5. 分布式锁的几种实现原理
  6. python 字符串总结
  7. Makefile中=、:=、+=、?=的区别
  8. java 0xaarrggbb 转换_RRGGBBAA或者RRGGBB转换成rgba()
  9. python 日记 day4。
  10. 查看我的mysql_我的MYSQL学习心得(七) 查询
  11. 一次性搞懂 HTTP、HTTPS、SPDY
  12. 中职计算机应用基础表格制作说课稿,表格制作说课稿.doc
  13. 关于webpack下载loader出现的问题(ERROR in ./src/img/timg.jpg Module build failed: ValidationError: File Loade)
  14. IE6,IE7和firefox的兼容问题大集合
  15. 都2022年了,还在争论编程语言?
  16. 1 -【第十一届】蓝桥杯物联网试题(模拟题)
  17. SQL Server数据库的增删改查
  18. 中国计算机学会CCF推荐国际学术会议和期刊目录-网络与信息安全
  19. 算法——排序——选择排序图解动画
  20. 小米笔记本Air 13.3 熄屏 大概率无法唤醒问题(已解决)

热门文章

  1. asp.net mvc post 后台model_搭建restful api后台
  2. 简述mysql的事务_请简述为什么要使用数据库的事务
  3. dataset的去重计数 g2_AntV 架构演进-G2 篇
  4. li标签横向排列_lt;bdigt; | HTML5 双向隔离标签
  5. eclipse html自动编译器,Eclipse+WxWidgets开发环境搭建
  6. python读txt写入excel_Python读取txt内容写入xls格式excel中的方法
  7. mysql.exe跑满_解决并分析mysqld-nt.exe大量占用CPU问题
  8. 手机通讯录备份代码实现三
  9. android handler3--post源码解析
  10. php+oracle新增数据类型,Oracle 修改某个字段的数据类型三种方式