五分钟读懂UML类图
2023-04-12 09:19:12
通常阅读一些远程分析文章或设计应用程序架构来处理UML类图。事实上,UML类图中最常用的元素可以在五分钟内掌握。让我们快速了解它:
一、表达类属性的方式
在UML类图中,类使用包括类名和属性(field) 和方法(method) 并用分割线的矩形表示,如下图所示的Employe类,它包含name、age和email三个属性,以及modifyinfo()方法。
那么,在属性/方法名称之前添加的加号和减号是什么意思呢?它们表示该属性或方法的可见性。UML类图中有三个可见性符号:
·+ :表示public
·- :表示private
·#:表示protected(friendly也属于这类)
因此,上图中的Employee类有三种私有属性和一种公共方法。
事实上,属性的完整表达是这样的:
可见性 名称 :类型 [ = 缺省值]
中括号中的内容是可选的
二、二。类别方法的表达
在上图中,我们已经看到了该方法的表示形式。实际上,该方法的完整表示如下:
可见性 名称(参数列表) [ : 返回类型]
同样,中括号中的内容也是可选的。
例如,在下图的Demo类中,定义了三种方法:
·public方法method1接收object的参数,返回值类型为void
·protected方法method2没有参数,返回值类型为String
·method3分别接收inttivate方法、int[]参数,返回值类型为int
三、类与类之间关系的表达
1、关联关系
关联可以进一步分为单向关联、双向关联和自关联。
(1)单向关联
我们可以看到,UML类图中的单向关联用箭头直线表示。上图显示,每个客户都有一个地址,这是通过让Customer类持有Address成员变量类型来实现的。
(2)双向关联
从上图很容易看出,所谓双向关联,就是双方持有对方类型的成员变量。在UML类图中,双向关联用没有箭头的直线表示。在上图中,在Customer类中维护一个Product[]数组,表示一个客户购买了这些产品;在Product类中维护Customer类型的成员变量表示该产品是由哪个客户购买的。
(3)自关联
自关联在UML类图中用箭头和指向自己的直线表示。上图意味着Node类包含Node类型的成员变量,即“包含自己”。
2、聚合关系
上图中的Car类和Engine类是聚合关系(Car类包含Engine类型的成员变量)。从上图可以看出,UML中的聚合关系用空心菱形和箭头直线表示。聚合关系强调“整体”包含“部分”,但是“部分”可以脱离“整体”单独存在。例如,上图中的汽车包含发动机,如果发动机与汽车分离,它也可以单独存在。
3、组合关系
组合关系和聚合关系最大的区别在于:这里“部分”脱离了“整体”便不复存在。如下图所示:
显然,嘴是头部的一部分,不能与头部分开存在。在UML类图中,组合关系用一条带有实心菱形和箭头的直线表示。
4、依赖关系
从上图可以看出,Driver的Drive方法只能通过引入一个Car对象来发挥作用,所以我们说Driver类依赖于Car类。在UML类图中,依赖性用带箭头的虚线表示。
5、继承关系
继承关系对应于extend关键词,在UML类图中用空心三角形直线表示。如下图所示,Student类和Teacher类继承了Person类。
6、接口实现关系
这种关系对应于implement关键词,在UML类图中用空心三角形虚线表示。如下图所示,Car类和Ship类都实现了Vehicle接口。
在这里,我们介绍了UML类图中最常见的表达方式。有了这些,我们就可以读懂常见的UML类图,剩下的就可以查了。
三、参考资料
http://www.uml.org.cn/oobject/201211231.asp