了解UML类图中的各类关系,有助于进行分析和设计模式的理解。
一、UML类图(Class Diagram)

类的集合与之间的关系
1.1 依赖关系 (Dependency)

Use-a的关系,学生使用自行车,学生依赖自行车
依赖关系可以是:
- A是B的(某方法的)局部变量
- A向B发送消息,引起了B的变化
1 | public class Student { |
1.2 泛化关系 (Generalization)

泛化关系就是继承,由里式替换原则
- 父类具有的方法、属性,子类都应该有
- 实现父类的地方能用子类替换
1 | public class Car { |
1.3 实现关系 (Implementation)

可以理解为抽象类。在JAVA中有接口这个概念,规定了与实体接口的关系,接口是方法或者操作的集合。与继承不同的是,接口只提供类与类之间的协议(实现方法),没有具体实现。要实现接口就得遵从协议,并实现接口中的方法,在代理中常用。
1 | //规定接口 |
1.4 关联关系 (Association)

这种关联可以是单向也可以是双向的,这里是has-a的关系,学生拥有身份证。
1 | public class Student { |
1.5 聚合和组合关系(Aggregation,Composition)
组合关系

聚合关系

组合关系是整体和组成的关系描述,is-part-of,这里轮胎和发动机是小汽车的组成部分。
聚合关系也有is-part-of的关系,但是与组合关系不同的是,用生命周期来看,小汽车销毁,轮胎和发动机也会跟着销毁。但是班级解散了,学生依然存在,学生的生命周期不随班级结束而结束。
1 |
|
1 | //组合关系 |