UML图详解(持续更新中)

一、UML概述

UML,统一建模语言(Unified Modeling Language)是用来软件的可视化建模语言。

从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图。

二、类图

Class diagram 是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及与类之间的关系。

1、类的表示

类使用包含类名、属性和方法且带有分割线的矩形来表示。

例如下图的Employee类,包含name、age和address这三个属性,以及work()方法。

属性/方法前的加号减号表示了可见性。

+ :表示public

- :表示private

# :表示protected

什么都不加表示default

属性的完整表示方式是: 可见性 名称 :类型[= 缺省值]

方法的完整表示方式是:可见性 名称(参数列表) [:返回类型]

注:中括号里的内容可以省略。

也可将类型写在变量名前面,返回值类型写在方法名前面。

2、类与类的关系表示

包含关联关系、聚合关系、组合关系、依赖关系、继承关系(泛化关系)、实现关系。

其中耦合性最低的是依赖关系,耦合性最强的是继承关系(泛化关系)和实现关系。

(1)关联关系

关联关系是是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,比如老师和学生、师傅和徒弟、丈夫和妻子等。

关联关系分为一般关联关系、聚合关系和组合关系。

一般关联关系分为单向关联、双向关联、自关联。

a.单向关联

在UML类图中,单向关联用一个带箭头的实线表示。例如下图,每个顾客都有一个地址。

b.双向关联

在UML类图中,双向关联用一个不带箭头的直线表示。例如下图,Customer类中维护了一个List<Product>,表示一个顾客可以买多个商品,在Product类中,维护一个Customer类型的成员变量,表示这个产品被哪个顾客所购买。

c.自关联

在UML类图中,自关联用一个带有箭头且指向自身的线表示。例如下图,Node类包含类型为Node的成员变量,自己包含自己。

(2)聚合关系

聚合关系是强关联关系,是整体与部分的关系。

聚合关系是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。例如,学校和老师的关系,学校包含老师,但是如果学校停办了,老师依然存在。

在UML中,聚合关系用带空心菱形的实线来表示,菱形指向整体。例如下图,大学和老师:

(3)组合关系

组合关系也是表示类之间整体与部分之间的关系,是一种更强烈的聚合关系。

在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在了,不分对象也会不存在,部分对象不能脱离整体对象而存在。例如头和嘴的关系,没有了头,嘴也就不存在了。

在UML中,组合关系用带实心菱形的实线来表示,菱形指向整体。例如下图,头和嘴的关系图:

(4)依赖关系

依赖关系是一种使用关系,是对象之间耦合度最弱的一种关联方式,是临时性的关联。

某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖的类)中的某些方法来完成一些功能。

在UML图中,依赖关系使用带箭头的虚线表示,剪头从使用类指向被依赖类。例如下图,是司机和汽车的关系图,司机驾驶汽车:

(5)继承关系(泛化关系)

继承关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类和子类之间的关系。

在UML中,泛化关系用带空心三角形箭头的实线表示,箭头从子类指向父类。例如下图,Student类和Teacher类都是Person类的子类。

(6)实现关系

实现关系是接口与实现类之间的关系。类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作。

在UML图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。例如下图,汽车和船实现了交通工具类:

三、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

摸鱼哥myg

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值