一、UML中的6大关系
关联、依赖、聚合、组合、泛化、实现
- 关联:连接模型元素及链接实例,用一条实线来表示;
- 依赖:表示一个元素以某种方式依赖于另一个元素,用一条虚线加箭头来表示;
- 聚合:表示整体与部分的关系,用一条实线加空心菱形来表示;
- 组成:表示整体与部分的有一关系,用一条实线加实心菱形来表示;
- 泛化(继承):表示一般与特殊的关系,用一条实线加空心箭头来表示;
- 实现:表示类与接口的关系,用一条虚线加空心箭头来表示;
注意:泛化关系和实现关系又统称为一般关系;
总之:一般关系表现为继承或实现(is a);关联关系、聚合关系、合成(聚合)/组合关系表现为成员变量(has a),依赖关系表现为函数中的参数(use a);
二、类与类之间的关系
一般关系:泛化、实现
特殊关系:由弱到强分别是 没关系 → 依赖 → 关联 → 聚合 → 组合
UML中类之间的关系:
- 依赖关系:类之间使用关系
- 泛化关系:类之间一般/特殊关系
- 关联关系:对象之间结构关系
- 实现关系:类中规格说明和实现之间关系
三、关系详解
3.1 聚合与组合
首先说明一下不容易混淆的概念:
聚合(Aggregation)
- 一种特殊类型的关联。
- 表示整体与部分关系的关联。
- 描述了“has a”的关系。
- 部分事物的对象可以属于多个聚合对象。部分事物的对象与聚合对象的生存期无关,删除了它的聚合对象,不一定就随即删除了代表部分事物的对象。
组合(Composite)
- 聚合关系中的一种特殊情况,是更强形式的聚合,又称强聚合。
- 成员对象的生命周期取决于组合的生命周期。
- 组合不仅控制着成员对象的行为,而且控制着成员对象的创建和解构。
3.2 依赖
依赖(dependency):指一个模型元素的变化必影响到另一个模型元素的变化。
可以简单的理解,就是一个类A使用到了另一个类B,而这种使