框中的符号
+ public
- private
# protected
~ default
_ static
斜体 抽象
图示
关联、聚合、组合:可以带箭头,也可以不带监听
关系说明
继承
、实现
很清晰,表示两个类的归属关系。
依赖
、关联
、聚合
、组合
的界限并不清晰,它们表示两个类的引用关系,关系强弱:依赖 < 关联 < 聚合 < 组合。
对比说明:
- 依赖
- 临时变量、方法参数
- A 需要
临时
用到 B 的功能 - 如人与杯子
- 关联
- 成员变量
- A 需要
长期
用到 B 的功能 - 如人与眼镜
- 聚合
- 成员变量
- A 需要 B 作为自己的
组成部分
,B可以独立存在
,可以属于他人 - 如人与衣服、雁群与大雁、公司与员工、汽车与轮胎
- 组合
- 成员变量
- A 需要 B 作为自己的
组成部分
,B不可以独立存在
,独属于 A - 如人与胳膊、鸟与翅膀、公司与部门
A 与 B 究竟是哪种关系,主要看编码者如何设计,即编码者认为他们是什么关系。比如人与衣服:
如果设计里这个人是一个普通的人,那衣服与人只是聚合关系。
如果设计里这个人是一个体面的人,那衣服与人就是组合关系。