如何绘制「UML类图」?附内容详解和优质实例分析!关系方法

UML图有很多种,但是并非必须掌握所有的UML图,才能完整系统分析和设计工作。一般说来,在UML图中,只要掌握类图、用例图、时序图的使用,就能完成大部分的工作。也就是说,掌握UML的20%,就能做80%的事情。

对于程序员来说,最频繁使用的莫过于类图。因此,这里我们只讲解UML类图。至于其它UML图,请在以后的工作中参阅更多UML学习资料继续学习。

类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。类图中最基本的元素是类、接口。软件设计师设计出类图后,程序员就可以用代码实现类图中包含的内容。

一、UML类图简介

类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法。类图用来描述系统中有意义的概念,包括具体的概念、抽象的概念、实现方面的概念等,是对现实世界中事物的抽象。

类图的主要作用是对系统的词汇进行建模、对简单的协作进行建模和对逻辑数据库模式进行建模。

二、类图基本属性

类图概括起来主要由两部分组成:类和类之间的关系,其中对类的定义如下图所示,主要由三部分组成,它们分别是类名、类的属性、类的方法,对应图中的三个分区内容。

类名:图中最上面的矩形框中为类名。如果字体为斜体,表示为抽象类

*符号解释

说明:属性和方法前面的“+”“-”和“#”表示访问级别,以下对这些符号进行解释说明。

冒号前是方法名/变量名(根据有无括号区分),冒号后是返回参数/变量类型(根据有无括号区分),如果没有冒号的话表示方法返回空(也有人通过:void表示返空)

三、类图中具体类、抽象、接口和包的表示法

UML类图中具体类、抽象类、接口和包有不同的表示方法。

1.在UML类图中表示具体类

具体类在类图中用矩形框表示,矩形框分为三层:

成员变量以及方法前的访问修饰符用符号来表示:

抽象类在UML类图中同样用矩形框表示,但是抽象类的类名以及抽象方法的名字都用斜体字表示。

3.在UML类图中表示接口

接口在类图中也是用矩形框表示,但是与类的表示法不同的是,接口在类图中的第一层顶端用构造型<>表示,下面是接口的名字,第二层是方法。此外,接口还有另一种表示法,俗称棒棒糖表示法,就是类上面的一根棒棒糖(圆圈+实线)。圆圈旁为接口名称,接口方法在实现类中出现。

4.在UML类图中表示包

类和接口一般都出现在包中,UML类图中包的表示形式。

四、类之间的关系

类之间的关系主要包括泛化(继承)、依赖、关联、聚合、组合和实现6种关系,下面对它们进行一一阐释。

1.泛化关系

泛化关系是一种继承关系,子类继承父类的所有行为和属性,子类可以新增新的功能或者重写父类功能。

表示方法:空心三角+实线,箭头指向父类

2.依赖关系

依赖关系表示一个类使用(依赖)另一个类的服务或信息。当一个类的改变会影响到另一个类时,两个类之间存在依赖关系。一般来说,依赖总是单向的,不应该存在双向依赖。

表示方法:尖括号+虚线

3.关联关系

关联关系是一种拥有的关系,它使一个类知道另一个类的属性和方法。它体现不同类的一种强依赖关系,比如我和我的朋友,这种关系比依赖更强,不存在依赖关系中的偶然性,关系也不是临时的,一般是长期性的。

关联关系分为单向关联或双向关联,也可以有多重性(一对多),双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

表示方法:尖括号+实线,箭头指向被拥有者

4.聚合关系

聚合关系是关联关系的一种,表示一种“弱”的“拥有”关系,是整体与部分的关系,且部分可以离开整体而单独存在,如车和轮胎是整体和部分的关系,轮胎离开车仍然可以单独存在。

表示方法:空心菱形+实线,菱形指向整体

5.组合关系

组合关系也是关联关系的一种,是比聚合关系还要强的关系,是整体与个体的关系,但个体不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

表示方法:实心菱形+实线

6.实现关系

实现关系是一种类与接口的关系,表示类是接口所有特征和行为的实现。

表示方法:空心三角+虚线

五、类图案例分析

为了帮助大家更好的理解类之间的6种关系,下面使用例子辅助大家学习和消化吸收。

汽车类图

汽车类图说明:

如果你能快速的看懂并理解以上案例,说明你基本上已经把类图弄懂了,再去多结合一些代码和对应的类图巩固一下,以后再看到类图就不会懵了。

六、如何绘制类图?

ProcessOn支持多种图形的绘制,当然也包括UML图啦,用ProcessOn绘制类图的方法很简单,只要掌握了类图绘制的知识点,研究明白了类图案例,相信每个人都可以快速学会画类图。

注:ProcessOn每个图标之间的连线默认都是实线箭头,大家根据需要可以在上方工具栏中调整连线样式、连线类型、连线颜色、箭头方向和箭头样式等。如果你想让自己的图更美观一些,可以把文本、图标、线条等填充不同颜色、相同的图标尽可能大小相同。

本文由@观察月亮的小白羊原创发布于人人都是产品经理。未经许可,禁止转载。

THE END
1.Java中的UML类图实现类图是最常用的UML图,他可以清楚地表示程序中类的基本结构,类与类之间的结构关系,掌握UML类图对于了解系统的总体结构和设计模式有着重大的作用。 下面介绍类图的基本知识以及类图在Java中的基本实现形式。 类(Class) 面向对象编程中,类是对象的骨架,它了包含3个组成部分。 https://www.jianshu.com/p/ddb590255975
1.一文搞懂UML类图统一建模语言 UML (Unified Modeling Language) 类图是一种用于描述系统结构的图形化工具。它以类和对象为基础,主要用于表示系统中的类、接口、继承关系、关联关系等元素,以及它们之间的静态结构和关系。在本文中,将深入介绍UML类图的基本元素、关系类型以及如何创建一个简单而有效的类图。 https://blog.csdn.net/sxlishaobin/article/details/143716574
2.UML概述类图关系及连接线表示FreeLikeTheWind的技术博客四、UML类图的六种关系 类的关系线条 类的关系基本包含以下几种: 0.类的表示 类的表示:最上方是类名,中间是属性,下面是方法。+表示公有,-表示私有,#表示保护。 1.继承 继承是用空心三角+实线表示。箭头指向基类或父类。 子类或派生类继承自父类或基类。可以在子类和派生类中声明自己的方法和属性。 https://blog.51cto.com/u_16417016/12529548
3.UML图:类图–详细介绍腾讯云开发者社区一种特殊类型的关联 表示整体与部分关系的关联 描述了“has a”的关系 组合关系 组合是聚合关系中的一种特殊情况,是更强形式的聚合,又称强聚合 成员对象的生命周期取决于聚合的生命周期 聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和析构 UML类图实例...https://cloud.tencent.com/developer/article/2105241
4.设计模式之UML(一)类图以及类间关系(泛化实现依赖关联...在UML类图中,用实线连接有关联关系的对象所对应的类,在使用Java、C#和C++等编程语言实现关联关系时,通常将一个类的对象作为另一个类的成员变量。在使用类图表示关联关系时可以在关联线上标注角色名,一般使用一个表示两者之间关系的动词或者名词表示角色名(有时该名词为实例对象名),关系的两端代表两种不同的角色,...https://www.kancloud.cn/digest/xing-designpattern/143734