前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如果你看不懂别人画的 UML 类图,看这一篇文章就够了

如果你看不懂别人画的 UML 类图,看这一篇文章就够了

作者头像
跟着飞哥学编程
发布2022-12-02 15:52:26
1.1K0
发布2022-12-02 15:52:26
举报

目录

1、UML 定义

2、类图中每个类的构成

3、UML类图中箭头的含义

3.1、实线空心箭头

 3.2、虚线空心三角箭头

3.3、 实线箭头

3.4、虚线箭头

3.5、尾部为空心菱形箭头 (也可没箭头)

3.6、尾部为实心菱形箭头 (也可没箭头)

4、结语


1、UML 定义

统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。

可以帮助我们表示软件的结构:不同的模块、类和对象如何相互交互,以及它们之间的关系是什么。

UML 经常与面向对象的设计结合使用,但它具有更广泛的适用范围。

在 UML 中,我们可以定义系统的结构和行为,并且可以通过图表可视化全部或者部分模型。有两种类型的图表:

  • 结构图用于表示系统的结构。有许多类型的结构图,但我们只讨论类图。对象图、包图和组件图均类似于类图。
  • 行为图用于描述系统的行为。交互图是行为图的子集,用于描述系统的不同组件之间的控制流和数据流。在行为图中,顺序图广泛用于面向对象的设计中。

类图是面向对象设计和开发阶段中使用最多的图类型。

类图是一种结构图,用于说明类的结构及类之间的关系。

如图1-1所示:

 图 1-1

 类图用于描叙类在应用程序中的结构非常有用。大多数时候,仅仅查看结构就足以了解类如何交互,但有时这还不够。

那么这个时候,我们可以使用行为图和交互图,其中顺序图用于描叙类和对象的交互。让我们使用顺序图来显示 Car 对象和 Vehicle 对象如何在继承和多态示例中进行交互,如图 1-2 所示:

 图1-2

2、类图中每个类的构成

类图中,每个类由 3 个部分组成,上面的是类名,中间的是属性,下面的是方法

属性和方法可以用修饰符修饰:

  • 加号(+)表示public;
  • 减号(-)表示private;
  • 井号(#)表示protected

3、UML类图中箭头的含义

3.1、实线空心箭头

含义: 泛化=继承 泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。 

 3.2、虚线空心三角箭头

 含义: 实现 实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述

3.3、 实线箭头

含义: 关联 表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的。 java中一个类的全局变量引用了另一个类,就表示关联了这个类,A类的属性引用了B类。

3.4、虚线箭头

 含义: 依赖 是一种使用的关系,即一个类的实现需要另一个类的协助。 java中,方法参数需要传入另一个类的对象,就表示依赖这个类。 如图中所示A类中的方法参数需要传入B类的对象

3.5、尾部为空心菱形箭头 (也可没箭头)

含义: 聚合 上图中的Car类与Engine类就是聚合关系(Car类中包含一个Engine类型的成员变量)。由上图我们可以看到,UML中聚合关系用带空心菱形和箭头的直线表示。

聚合关系强调是“整体”包含“部分”,但是“部分”可以脱离“整体”而单独存在。比如上图中汽车包含了发动机,而发动机脱离了汽车也能够单独存在。 

3.6、尾部为实心菱形箭头 (也可没箭头)

含义: 组合 组合关系与聚合关系间的最大不同在于:这里的“部分”脱离了“整体”便不复存在。 

4、结语

在 UML 类图中,常见的就是六种关系:泛化(Generalization),实现(Realization),关联(Association),依赖(Dependency),聚合(Aggregation),组合(Composition)。

这篇文章主要想帮助大家了解一下 UML 类图的结构,这样在后续的学习或工作中,遇到别人画的类图,起码能看懂是啥意思。我这里也是帮大家温故一下。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、UML 定义
  • 2、类图中每个类的构成
  • 3、UML类图中箭头的含义
    • 3.1、实线空心箭头
      •  3.2、虚线空心三角箭头
        • 3.3、 实线箭头
          • 3.4、虚线箭头
            • 3.5、尾部为空心菱形箭头 (也可没箭头)
              • 3.6、尾部为实心菱形箭头 (也可没箭头)
              • 4、结语
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档