- UML分为两类图
# 1. 结构性图:
# 类图、组件图、部署图、对象图、包图、组合结构图、轮廓图
# 2. 行为性图:
# 用例图、活动图(流程图)、状态机图、序列图、通信图、交互图、时序图
1. 类图
- 类图用于表示不同实体(人,事物和数据),以及它们彼此之间的关系。
- 类图常见的集中关系:
- 泛化、实现、组合、聚合、关联、依赖
- 强弱顺序:泛化=实现>组合>聚合>关联>依赖
2. 泛化
- 是一种继承关系
-
ps
: 哺乳动物具有恒温、胎生、哺乳等特征,猫和牛是哺乳动物,也具有这些特征,但除此之外,猫会捉老鼠,牛会耕地
3. 实现
- 是一种类与接口的关系,表示类要实现接口所有特征和行为
-
ps
: 蝙蝠也是哺乳动物,它具有哺乳动物的一般特征之外,还会飞,我们可以定义一个IFlyable的一个接口,表示飞行的动作,而蝙蝠需要实现这个接口
4. 组合
- 表示整理与部分的关系,但部分离开整体后无法单独存在,因此,组合与聚合相比是一组更强的关系
-
ps
: 电脑由cpu、主板、硬件、内存组成,电脑与cpu、主板、内存是整体与部分的关系,如果让cpu、主板单独存在,就无法工作。
5. 聚合
- 是整理与部分的关系,部分可以离开整理而单独存在
-
ps
: 一个公司会有很多员工,但员工可以离开公司单独存在,离职了依旧可以好好活着
6. 关联
- 是一种拥有关系,它使一个类知道另一个类的属性和方法。关联可以是双向也可以是单向的
-
ps
:一本书可以由多个读者,一个读者也可能会有多本书,书和读者是一种双向的关系(多对多);但一本书通常只会有一个作者,是一种单向的关系(一对一,也可能是一对多的关系,因为一个作者可能会写多本书)
7. 依赖
- 是一种使用关系,即一个类的实现需要另一个类的协助,所以尽量不要使用双向的互相依赖
-
ps
:所有的动物都要吃东西才能活着,动物与食物是一种依赖关系,动物依赖食物而生存