软考——UML

 

UML类图中,一共有六大关系:

下面的很多关系涉及到整体与部分,包含关系算,以及某一事物是存储另一事物的,负责存储的事物可以看成整体,被存储的可以看成部分

泛化(Generalization)

实现(Realization)

关联(Association)

聚合(Aggregation)

组合(Composition)

依赖(Dependency)。

下面我们依次进行讲解

一、泛化关系(Generalization

说明:这种关系就是面向对象语言中的继承关系,逻辑上可以用"is a"表示。

代码体现:子类继承父类。

UML符号:一条实线+空心箭头。

图示:pastedGraphic.png

 

二、实现关系(Realization

说明:和泛化关系相似,逻辑上也是用"is a"表示。区别在于实现关系继承一个抽象类(abstract、interface),

而泛化关系继承一个具体类。 

代码体现:实现接口或继承某个抽象类。

UML符号:一条虚线+空心箭头。

图示:

pastedGraphic_1.png

 

三、组合关系(Composition

说明:是整体与部分的关系,但部分不能脱离整体而独立存在。逻辑上能用"has a"表示。

代码体现:成员变量。

UML符号:一条实线+实心菱形。

实心菱形的一端是整体,另一端是部分

图示:

pastedGraphic_2.png

 

四、聚合关系(Aggregation

说明:是整体与部分的关系,部分能脱离整体而独立存在。逻辑上能用"has a"表示。

代码体现:成员变量

UML符号:一条实线+空心菱形

图示:

pastedGraphic_3.png

五、关联关系(Association

说明:是整体与部分的关系。逻辑上能用"has a"表示。

代码体现:成员变量。

UML符号:双向关联,一条实线或一条实线+两个箭头;单向关联,一条实线+一个箭头。

图示:

pastedGraphic_4.png

 

pastedGraphic_5.png

 

自身关联:在单例模式中可以看到。

pastedGraphic_6.png

 

关联的多元性图示:

 

六、依赖关系(Dependency

说明:是一种使用关系,即一个类的实现需要另一个类的协助。逻辑上能用"use a"表示。

尽量不要使用双向依赖。

代码体现:局部变量、方法的参数和静态方法的调用。

UML符号:一条虚线+箭头。

箭头端为被使用者

图示:

pastedGraphic_7.png

 

七、总结:

1.六种关系的耦合度大小是:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

2.泛化和实现体现了逻辑上的"is a"的关系,组合、聚合和关联体现了逻辑上的"has a"的关系,

“依赖”体现了逻辑上的"use a"的关系。

 
posted @   薛定谔的小冰  阅读(254)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示