UML类图学习备忘
1 UML类图(UML Class Diagram)
UML(Unified Modeling Language),统一建模语言,一种针对面向对象软件设计提供的建模语言;
2 类实例图示
在UML中,一个类实例由三部分组成,彼此之间用直线分割:
+ 类名。
接口名
斜体表示
+ 属性(成员变量):表示格式为
可见性 属性名:属性类型[ = 缺省值]
可见性 | UML图示 |
---|---|
public | + |
protected | # |
private | – |
+ 操作(方法):表示格式为
可见性 方法名(参数列表) [ : 返回类型]
3 类之间关系与图示
3.0 类关系箭头图示
关系分类 | UML箭头图示 |
---|---|
单向关联 | |
双向关联 | |
自关联 | 同单向关联 |
多重关联 | 待补充 |
聚合关系 | |
组合关系 | |
依赖/继承关系 | |
实现关系 |
3.1 关联关系
关联关系(Association)
:表示对象之间存在联系,可细分为
单向关联
,
双向关联
,
自关联
,
多重关联
,
聚合
与
组合
;
- 3.1.1 单向关联
- 3.1.2 双向关联
- 3.1.3 自关联:类的属性对象是该类自身,比如链表节点类;
-
3.1.4
聚合关系(Aggregation)
:弱聚合关系,成员对象是整体对象的属性(汽车和马达);成员对象可以脱离整体对象独立存在;
在Java中成员对象实例是整体对象的方法参数注入到整体对象;
-
3.1.5
组合关系(Composition)
:强聚合关系,成员对象是整体对象的属性(鸟和翅膀);与聚合模式不同,整体对象控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在,整体对象与成员对象存在同生共死的关系;
在Java中组合关系同城在整体对象的构造方法中直接实例化成员对象
3.2 依赖关系
依赖关系(Dependency)在Java中通过以下方式实现:
- 一个类对象作为另一个类的方法参数
- 一个类对象作为另一个类中方法的成员变量
- 一个类内部调用另一个类的静态方法
3.3 泛化关系 = 继承关系
泛化关系(Generalization)就是
继承关系
,表示父类与子类关系;
3.4 实现关系
接口与实现类之间存在实现关系(Realization)
参考
[1]
深入浅出UML类图