🗒️UML类图再学习
00 分钟
2023-10-27
2024-6-29
type
status
date
summary
slug
tags
category
password
URL
icon
 
 
 
UML类图中有几个关键元素:具体类、抽象类、接口、包;关联关系有实现关系、泛化关系、关联关系、依赖关系、聚合关系和组合关系。
 

关键元素

具体类

具体类在类图中用矩形框标识,矩形框分为三层:第一层是类名字;第二层是类的成员变量;第三层是类的方法。其中,访问修饰符用如下修饰符来表示:
  • “+”表示public
  • “-”表示private
  • “#”表示protected
  • 不带符号表示default
 
notion image
 

抽象类

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

接口

接口在类图中也是用矩形框表示,但是与类的表示法不同的是,接口在类图中的第一层顶端用构造型<<interface>>表示,第二层是接口的名字,第三层是方法,如下如所示。
notion image
 

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

关联关系

 

实现关系

实现关系,是指接口及其实现类之间的关系。在UML类图中,实现关系用空心三角和虚线组成的箭头来表示,从实现类指向接口。
notion image
 

泛化关系

泛化关系,是指对象和对象之间的继承关系。如果对象A和对象B之间的“is a”关系成立,那么二者之间就存在继承关系,对象B是父对象,对象A是子对象。在UML类图中,泛化关系用空心三角和实线组成的箭头表示,从字类指向父类,如下图所示。
notion image
 

关联关系

关联关系是指对象和对象之间的连接,它使一个对象知道另一个对象的属性和方法。在Java中,关联关系的代码表现形式为一个对象含有另一个对象的引用。也就是说,如果一个对象的类代码中,包含另一个对象的引用,那么这两个对象之间就是关联关系。
 
关联关系又分为依赖关联聚合关联组合关联三种类型。
 

依赖关联

依赖关系是一种弱关联关系。如果对象A用到对象B,但是和B的关系不是太明显的时候,就可以把这种关系看作是依赖关系。如果对象A依赖于对象B,则A “use a” B。在UML类图中,依赖关系用一个带虚线的箭头表示,由使用方指向被使用方,表示使用方对象持有被使用方对象的引用。如下图所示。
notion image
 

聚合关系

聚合是关联关系的一种特例,它体现的是整体和部分的拥有关系,即“has a”的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享,所以聚合关系也常被称为共享关系。例如,公司部门与员工的关系,一个公司可以属于多个部门,一个部门撤销了,员工可以转到其他部门。
在UML图中,聚合关系用空心菱形加实线箭头表示,空心菱形在整体一方,箭头指向部分一方。
notion image
 

组合关系

组合也是关联关系的一种特例,它同样体现整体与部门间的包含关系,即“contains a”的关系。但此时整体和部分不可分,部分也不能给其他整体共享,作为整体的队形负责部分的对象的生命周期。这种关系比聚合更强,可以称为强聚合。
在UML图中,组合关系用实心菱形加实线箭头表示,实心菱形在整体一方,箭头指向部分一方。
notion image
上一篇
ThreadLocal内容详解
下一篇
Python服务一访问就崩溃问题(非全部机器)