UML图之类图关系

uml

uml是Unified Modeling Language的简称,中文名称为统一建模语言。顾名思义,他就是在计算机程序设计过程过程中用来表示业务模型,概念模型等信息的图形展示。

类图

类图是描述软件系统中类与类之间的作用关系,用来展示软件系统的结构,以图型方式来直观表达出系统设计系统理念。

类是面向对象语言的重要思想,它把一些相同的属性和行为封装在同一个结构中,用来统一对外展示。

类图的uml结构


这里是使用的processon工具在线画的类图结构,类图分为三个部分,每部分用空隙隔开。

  • 类名
  • 类的属性即成员变量
    成员变量的表示方式:权限 名称:类型 [= 默认值]
  • 类型行为即方法
    方法信息的表示方式:权限 名称(参数) [: 返回值类型]

其中:
权限中+表示的是public, -表示的是private, #表示的是protected

类之间的关系

1.泛化
泛化是类和类之间的继承关系,通常用带空心三角形的直线来表示。下图中,定义了一个基类为People,他拥有name(姓名)和age(年龄)属性,同时有一个run方法,Male和Female类继承与People拥有它的属性和方法,同时还有自己增加的方法。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8hdW2QRt-1599126685243)(http://note.youdao.com/yws/res/2842/WEBRESOURCE987b8c91eda9e5b63bc080ca47099cd8)]

2.实现
实现关系一般是对接口的实现,使用带三角形的虚线来表示,这把people定义成接口,它拥有一个behave方法,然后通过Male和Female来实现这个接口,并拥有不同的behave行为。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wt9H1pSk-1599126685246)(http://note.youdao.com/yws/res/2852/WEBRESOURCE34c840252eda3394f9c44029fd0b2028)]

  1. 组合
    组合关系表示的整体由部分构成并且部分是不能单独存在的。例如人是有身体和头部来构成的,身体和头部都不能单独存在,而身体和头部的组合来支持人的正常生活。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tpy1gt2Y-1599126685249)(http://note.youdao.com/yws/res/2876/WEBRESOURCE4f83a497a6e2cf97eeec0254b07f00f5)]

4.聚合
聚合关系描述的是一个弱类型的整体和部分的关系,部分离开整体后依赖能够正常行使功能。例如企业运行是由人提供生产资料来运转的,但是企业会有人员流程,人离开了这个企业也可以去其他企业工作。聚合关系的表现方式是一个空心的菱形和实现的箭头。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Ruq0zSS-1599126685252)(http://note.youdao.com/yws/res/2885/WEBRESOURCE4116af6b0cb7b138539f98c3680db282)]

5.依赖
依赖是一种使用关系,表示一个事物的行为要用到另一个事物来完成。通常是座位一个方法参数传递来另一个事物中。依赖关系用虚线的箭头来表示,箭头方向表示被依赖的的一方。这里Driver类的drive方法需要使用到Car。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ybXUpHfZ-1599126685256)(http://note.youdao.com/yws/res/2866/WEBRESOURCE08238f29e3e1c6bf88babadf158ee13d)]

6.关联
关联关系是一种结构的关系,用于表示类和类之间有关系。一般用实线的箭头来表示。
例如老师和学生之间,学生和课程之间有关联关系,学生和老师之间的关联是双向的,学生跟随老师学习,而老师也带领着学生。学生和课程之间的关联关系是单向的,学生拥有课程,而课程不拥有学生。除此之外,关联关系还有单向的,表示一个类和自己有关系。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lq73F06I-1599126685257)(http://note.youdao.com/yws/res/2896/WEBRESOURCEb9cf66452cb251e9127471f508451c40)]

自关联类图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2bQUfnDC-1599126685259)(http://note.youdao.com/yws/res/2899/WEBRESOURCE8b6ebf93a9fe0cf0664e2cea9bc5215a)]

参考博客

深入浅出uml类图 几个常用的uml类图关系