类图

类图

一、什么是类图

img

Ⅰ. 用类图获取需求的大致步骤

  1. 识别出类

  2. 识别出类的主要属性

  3. 描绘出类之间的关系

  4. 对各类进行分析、抽象、整理

Ⅱ. 类图的读图标准

  1. 可以分别从左往右、从右往左来读图,看看有没有什么不合理的地方。
  2. 注意:无论你从哪边开始读起,都是以"1个……"开头。

二、类图之间的关系

Ⅰ. 关联关系(直线)

关联关系表示两个类有关系,但是暂时不能确定具体是怎么样的,就先用一条直线连接将两者连接起来。

img

Ⅱ. 聚合关系(空心棱形:弱包含)与组合关系(实心棱形:强包含)

img

"弱"包含与"强"包含的区别

1."弱"包含表示如果部门没有了,员工还可以继续存在

"强"包含表示如果部门没有了,员工也不再存在

2."弱"包含关系中,儿子可以有多个父亲,而"强"关系中,儿子只能有一个父亲

Ⅲ. 泛化关系(继承关系)

这表示A继承了B,A具备了B的特点,同时也有自己的特点。

img

Ⅳ. 依赖关系

这表示A依赖与B,表示A需要B来协助才能完成

img

Ⅴ. 递归关系

图一为"自包含",图二为"自关联",使用这两种方式都可以形成"递归"关系

img

Ⅵ. "三角"关系

"三角"关系的关键在于关联表(Association Class),关联表是对两个类的关系的进一步约束。

img

适合使用关联表的情况:

  1. 如果觉得两个类有关系,则先拉上一条直线再说。

  2. 如果觉得两个类有关系,但怎么画都觉得这个关系不太合适,那么可以思考是不是漏了一个关键类。

  3. 分别列出这两个类的关键属性,思考这些属性的属性值是不是由该类本身就可以确定了。

  4. 通过对属性的思考,可能会发现这个属性应该是属于另一个类的,思考这个类是不是能表征原来两个类关系的关联表。

三、对象图

如果有一个Person类,类图如下:

img

我们创建它的对象:person

Person person = new Person();

用对象图表示为:

img

Ⅰ. 类图与对象图的区别

因为对象图中出现的都是具体的东西,所以肯定是一对一关系

一个公司包含多个员工,类图如下:

img

如果某公司A有甲、乙、丙三位员工,则对象图表示为:

img

四、练习

Ⅰ. 一辆小车有4个轮子

img

Ⅱ. 一辆货车也有4个轮子,但是货车的前轮和后轮不太一样

img

Ⅲ. 请用类图表示项目组的人员组成。

Ⅳ. 你要设计一个论坛,请用类图表达出分区、板块、子版块、帖子等论坛常见元素的关系。

posted @ 2020-05-03 22:17  闰土与喳  阅读(570)  评论(0编辑  收藏  举报