类间关系

依赖关系

类与类之间最弱的关系,在代码中体现就是某个类作为另一个类的方法参数或者局部变量,或者另一个类调用其静态方法。

图形:虚线箭头。

关联关系

类与类之间比依赖关系更强的关系,在代码中体现就是被关联类B作为关联类A的属性。一般通过方法参数调过去。

图形:实线箭头。

聚合关系

是一种“拥有”关系,表示整体与部分的关系,部分可以脱离整体单独存在,他们具有各自的生命周期。在代码中体现就是部分类作为整体类的属性,部分类作为构造方法的参数或通过set方法或业务方法注入到整体对象中。比如汽车与轮胎、汽车与汽油、班级与学生等。

因为是注入到整体类中,所以在整体类中是存在部分类的属性。

图形:空心菱形实线箭头,菱形指向被聚合类,箭头指向聚合类。

组合关系

也是一种“拥有”关系,表示整体和部分的关系,但是整体对象可以控制部分的生命周期,整体的生命周期结束也就意味着部分的生命周期结束。在代码中体现就是部分类作为整体类的属性,但是部分类直接在整体类的构造方法中进行实例化。比如人和大脑等

图形:实心菱形实线箭头。

泛化关系

也叫继承关系,用于描述父类与子类之间的关系。在代码中体现就是子类与父类、子接口与父接口之间的关系,在java中通过关键字extends标示。

图形:箭头从子类指向父类,实线空心三角箭头。

实现关系

在代码中体现就是类与接口之间的关系。在Java中通过关键字implements标识。

图形:虚线空心三角箭。