UML类图关系与符号简介

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

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

0.UML类的表示

如图,类由一个矩形框表示,矩形框分为3层:

  • 第一层:类的名称;如果该类是抽象类,则使用斜体;
  • 第二层:类的属性,即成员变量;
  • 第三层:类的方法,即成员函数。

成员变量和成员方法前面有权限修饰符:

  • “-”:private——私有
  • “+”:public——公有
  • “#”:protected——保护性

1.泛化(Generalization)

  • 含义:类的继承关系
  • 表示:用空心三角和实线,空心三角指向父类。
  • 举例:狗和猫都是一种动物。

2.实现(Realization)

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

3.关联(Association)

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

3.1单项关联

  • 含义:
  • 表示:带箭头的直线表示。
  • 举例:老师(Teacher类)有自己的地址(Address类)

3.2双向关联

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

 

3.3自关联 

  • 含义:自己引用自己
  • 表示:带箭头的直线,指向自己。
  • 举例:

4.聚合(Aggregation)

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

5.组合(Composition)

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

 

6.依赖(Dependency)

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

注意:关联、聚合和组合、依赖的区别

  • 关联代表类与类的关系;
  • 聚合和组合代表整体与部分的关系;
  • 依赖是一种弱的关系,表示一个类的方法的实现需要用到另一个类,但二者之间并没有明显的关系。


欢迎关注知乎专栏:Jungle是一个用Qt的工业Robot

欢迎关注Jungle的微信公众号:Jungle笔记

 

  • 19
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯Jungle

您的支持是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值