type
status
date
summary
slug
tags
category
password
URL
icon
UML类图中有几个关键元素:具体类、抽象类、接口、包;关联关系有实现关系、泛化关系、关联关系、依赖关系、聚合关系和组合关系。
关键元素
具体类
具体类在类图中用矩形框标识,矩形框分为三层:第一层是类名字;第二层是类的成员变量;第三层是类的方法。其中,访问修饰符用如下修饰符来表示:
- “+”表示public
- “-”表示private
- “#”表示protected
- 不带符号表示default
抽象类
抽象类在UML类图中同样适用矩形框表示,但是抽象类的类名以及抽象方法的名字都用斜体字表示,如下图所示。
接口
接口在类图中也是用矩形框表示,但是与类的表示法不同的是,接口在类图中的第一层顶端用构造型<<interface>>表示,第二层是接口的名字,第三层是方法,如下如所示。
包
类和接口一般都出现在包中,UML类图中包的表示形式如下。
关联关系
实现关系
实现关系,是指接口及其实现类之间的关系。在UML类图中,实现关系用空心三角和虚线组成的箭头来表示,从实现类指向接口。
泛化关系
泛化关系,是指对象和对象之间的继承关系。如果对象A和对象B之间的“is a”关系成立,那么二者之间就存在继承关系,对象B是父对象,对象A是子对象。在UML类图中,泛化关系用空心三角和实线组成的箭头表示,从字类指向父类,如下图所示。
关联关系
关联关系是指对象和对象之间的连接,它使一个对象知道另一个对象的属性和方法。在Java中,关联关系的代码表现形式为一个对象含有另一个对象的引用。也就是说,如果一个对象的类代码中,包含另一个对象的引用,那么这两个对象之间就是关联关系。
关联关系又分为依赖关联、聚合关联和组合关联三种类型。
依赖关联
依赖关系是一种弱关联关系。如果对象A用到对象B,但是和B的关系不是太明显的时候,就可以把这种关系看作是依赖关系。如果对象A依赖于对象B,则A “use a” B。在UML类图中,依赖关系用一个带虚线的箭头表示,由使用方指向被使用方,表示使用方对象持有被使用方对象的引用。如下图所示。
聚合关系
聚合是关联关系的一种特例,它体现的是整体和部分的拥有关系,即“has a”的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享,所以聚合关系也常被称为共享关系。例如,公司部门与员工的关系,一个公司可以属于多个部门,一个部门撤销了,员工可以转到其他部门。
在UML图中,聚合关系用空心菱形加实线箭头表示,空心菱形在整体一方,箭头指向部分一方。
组合关系
组合也是关联关系的一种特例,它同样体现整体与部门间的包含关系,即“contains a”的关系。但此时整体和部分不可分,部分也不能给其他整体共享,作为整体的队形负责部分的对象的生命周期。这种关系比聚合更强,可以称为强聚合。
在UML图中,组合关系用实心菱形加实线箭头表示,实心菱形在整体一方,箭头指向部分一方。
- 作者:luxinfeng
- 链接:https://www.luxinfeng.top/article/20231027
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。