【设计模式】UML类图关系与符号

举报
野猪佩奇996 发表于 2022/02/16 00:42:08 2022/02/16
【摘要】 文章目录 一、UML简介1.1 UML类图常用关系1.2 UML模型结构1.3 UML类的表示 二、类之间的关系2.1 泛化(Generalization)2.2 实现(Realization...

一、UML简介

UML-Unified Model Language 统一建模语言,是在开发阶段,说明、可视化、构建和书写一个面向对象软件的开放方法。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。

1.1 UML类图常用关系

UML类图是用户将所希望描述的事物抽象为类,描述类的内部结构和类之间关系的设计视图。在UML类图中,常有以下几种关系:泛化(Generalization)、实现(Realization)、关联(Association)、聚合(Aggregation)、组合(Composition)和依赖(Dependency)。

按照关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。

1.2 UML模型结构

  • 视图 view:多个图形组成的一个抽象集合,一个系统模型可能有多个视图,每个视图从特定角度描述系统特征,如用户视图、结构视图、行为视图、实现视图等。
  • 图 Diagram:UML图是UML视图内容的图形,如用例图、类图、对象图、包图等。
  • 模型元素 Model Element:指UML图中使用的一些概念,如类、对象、消息,以及概念之间的关系,如关联关系、以来关系等。
  • 通用机制 General Mechanism:UML提供的通用机制为模型元素提供额外的注释、语义和扩展机制,允许用户对UML进行扩展。

1.3 UML类的表示

类由一个矩形框表示,有3层:
在这里插入图片描述

  • 成员变量和成员方法前面有权限修饰符:
    • “-”:private——私有
    • “+”:public——公有
    • “#”:protected——保护性

在这里插入图片描述

二、类之间的关系

2.1 泛化(Generalization)

含义:类的继承关系。
表示:用空心三角和实线,空心三角指向父类。
在这里插入图片描述

2.2 实现(Realization)

含义:类与接口的关系,表示类是接口所有特征和行为的实现。
表示:用空心三角和虚线,空心三角指向接口。
举例:狗和猫实现了动物的“eat()”和"run()"的接口。
在这里插入图片描述

2.3 关联(Association)

关联是一种拥有关系(has),一个类可以条用另一个类的公有的属性和方法。在类中以成员变量的方式表示。比如老师有自己的学生,知道学生的姓名学号成绩;学生有自己的老师,也知道老师的姓名和所教的科目。关联分为单向关联、双向关联和自关联。

(1)单项关联

表示:带箭头的直线表示。
举例:老师(Teacher类)有自己的地址(Address类)
在这里插入图片描述

(2)双向关联

含义:指双方都知道对方的存在,都可以调用对方的公共属性和方法。
表示:用一条直线连接两个类,也可以用双向箭头。
举例:老师(Teacher类)有自己的学生(Student类),学生也有自己的老师。
在这里插入图片描述

(3)自关联

含义:自己引用自己
表示:带箭头的直线,指向自己。
举例:
在这里插入图片描述

2.4 聚合(Aggregation)

含义:整体与部分的关系,部分离开整体后可以单独存在。常用于类的成员变量。
表示:带空心菱形和箭头的直线(或没有箭头),菱形挨着整体,箭头指向部分。
举例:汽车和轮胎,轮胎是汽车的一部分,但轮胎也可以单独存在。
在这里插入图片描述

2.5 组合(Composition)

含义:整体与部分的关系,部分离开整体后不可以单独存在,代表整体的对象负责代表部分的对象的生命周期。常用于类的成员变量。
表示:带实心菱形和箭头的直线(或没有箭头),菱形挨着整体,箭头指向部分。
举例:公司和部门,部门是公司的一部分,但部门不可以单独存在。
在这里插入图片描述

2.6 依赖(Dependency)

含义:是一种使用的关系,即一个类的实现需要另一个类的协助,常用于类方法的局部变量、方法参数等。
表示:带箭头的虚线。
举例:Animal的eat()方法的参数是Food

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/122918007

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。