作者:亿图图示
链接:https://www.zhihu.com/question/419312525/answer/1535413984
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

UML类图,UML中的一种重要图形,是在面向对象语言用中用来表示一个类。UML不止类图,还有活动图、对象图、状态图、时序图等。

如下图所示(它由两部分组成,类和类之间的关系):

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

动物UML类图

1 类

类是具有相似结构、行为和关系的一组对象的描述符,是面向对象系统中最重要的构造块。

如下图所示,就表示一个类:

三个格子从上至下分别表示:

  • 类名称(如果是接口,就使用斜体表示)
  • 类的特性(一般是类的字段和属性,可以没有)
  • 类的操作(一般是类的方法或行为)

它们前边的符号有以下几类:

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

2 类的关系

除了类,类图中还有一个重要元素,即类之间的关系。

根据类的关系的不同,具体可分为6种:

2.1泛化

介绍:
泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系

(1)继承
介绍:
继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
表示方法:
继承使用空心三角形+实线表示。
示例:
鸟类继承抽象类动物,它指定了子类如何特化父类的所有特征和行为。例如:鸟是动物的一种,企鹅、鸭、大雁是鸟的一种。

(2)实现
介绍:
实现表示一个class类实现interface接口(可以是多个)的功能。
表示方法:

1)矩形表示法
使用空心三角形+虚线表示
比如:大雁需要飞行,就要实现飞()接口

  • 顶端有<<interface>>
  • 第一行:接口名称
  • 第二行:接口方法

矩形表示法

第二种,棒棒糖表示法

  • 圆圈旁为接口名称
  • 接口方法在实现类中出现

棒棒糖表示法

2.2依赖

介绍:
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
表示方法:
依赖关系用虚线箭头表示。
示例:
动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数

2.3关联

介绍:
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。
表示方法:
关联关系用实线箭头表示。
示例:
企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。

2.4聚合

介绍:
表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期
表示方法:
聚合关系用空心的菱形+实线箭头表示。
示例:
每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。

2.5组合

介绍:
组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样
表示方法:
组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。
示例:
鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。

总结来说,只有充分了解这些图形的要素组成及要素间关系,我们才能有效地运用UML图来便捷沟通、开发,而不是用糟糕的UML图来添堵。

详细说明UML类图是什么?相关推荐

  1. 图文并茂,详细讲解UML类图符号、各种关系说明以及举例

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | duanxz 来源 | https://www ...

  2. 2.5万字详解23种设计模式—创建型模式(简单工厂、工厂方法、抽象工厂、单例-多线程安全详解、建造者、原型)的详细解读、UML类图

    本文简述了各大设计模式,并通过UML和代码详细说明.本文大约共 2.5W 字,建议收藏.下方是本文的目录: 一.设计模式的认识 二.设计模式的分类 根据其目的 根据范围 三.设计模式的优点 四.设计模 ...

  3. 【Java】UML类图详解-详细易懂

    基本介绍 统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言.它的特点是简单.统一.图形化.能表达软件设计中的动态与静态信息. UML 从目标系统 ...

  4. 最全Pycharm教程(43)——Pycharm扩展功能之UML类图使用 代码结构

    版权声明:本文为博主原创文章,转载时麻烦注明源文章链接,谢谢合作 https://blog.csdn.net/u013088062/article/details/50353202 1.什么是UML ...

  5. 从零开始单排学设计模式「UML类图」定级赛

    阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...

  6. 从零开始单排学设计模式「UML类图」定级赛 1

    阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...

  7. 快速了解 UML 类图

    前言 UML 类图,用于表示项目框架中类的说明,以及类与类之间的关联,在项目设计中,通过 UML 可以快速了解整个项目的框架结构. UML 类图 在 UML 类图中,类使用包含类名.属性和方法并且带有 ...

  8. 【UML】如何记忆UML类图的画法

    目录 1. 前言 2. 元素 2.1. 访问权限 3. 类之间的各种关系 3.1. 泛化 3.2 关联 3.3. 依赖 4. 另一篇参考的博文 1. 前言 UML类图形象反映系统类之间的关系,在正规的 ...

  9. 【转】30分钟学会UML类图

    转自:30分钟学会UML类图 - 知乎 30分钟学会UML类图 肖继潮 UML图有很多种,但是并非必须掌握所有的UML图,才能完整系统分析和设计工作.一般说来,在UML图中,只要掌握类图.用例图.时序 ...

最新文章

  1. CSS 选择器:BeautifulSoup4解析器
  2. 械模拟计算器 - 计算尺
  3. C# 面向对象之继承后初始化顺序
  4. 如何在SAP的Screen中编写List报表
  5. 移动端工程架构与后端工程架构的思想摩擦之旅(1)
  6. jquery.prompt.js 弹窗的使用
  7. 通用大数据架构为什么不适合处理物联网数据?
  8. Kontakt 6 for Mac崩溃时常用的几种解决方案
  9. 网站设计(3常用标签)
  10. 如何制作和部署war包
  11. 【ATSC】【OTT】Netflix将作为美国有线机顶盒界面中的一个频道
  12. 微软Windows 11官方超高清4K壁纸提前放出,免费下载
  13. css3边框背景border-image
  14. DOS命令的英文全称
  15. 微信小程序图片显示模式
  16. 【控制】自适应控制,模型参考自适应控制,公式推导,有程序有结果图
  17. 使用sh执行bash脚本的奇怪问题
  18. IE病毒必杀记-IE病毒常用查杀方法简介(转)
  19. 学习少儿编程有什么好处呢?
  20. Redis CacheClient

热门文章

  1. 力扣刷题——双数之和
  2. #25 李雷向韩梅梅求婚
  3. 基于Vue和Element-UI自定义分组以及分组全选Select 选择器
  4. 导出采集文章数据-简数采集器
  5. Raptor-公司最大收益
  6. Zedboard:仿真
  7. Flash钓鱼->CS上线(免杀过火绒、360等)
  8. 事务_进程 ID 57_与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务
  9. CSS篇 累了,毁灭吧
  10. <fieldset> 标签