1. 依赖,Dependency,虚线+箭头(箭头指向依赖的对象)
从字面上理解就是,一个类中的方法的实现依赖另外一个类,主要描述的就是类与类之间的使用关系。
2. 关联,Association,实线+箭头(箭头指向关联的对象)
类与类之间存在某种关联,可以说是更强的依赖关系,从虚线变成实线也说明了这一点。
Java中关联的对象一般以类的成员变量的形式出现。
比如,学生和它的科系可以是关联关系,学生类中需要一个科系的成员变量,以便学生根据这个变量来选择课程。
3. 聚合,Aggregation,空心菱形(菱形指向聚合类)+实线+箭头(箭头指向个体类)
聚合是一种特殊的关联,是一种“整体-个体”的关系。
Java中以成员变量的形式出现,所以从代码上看和关联是一样的,只能从语义上区分。
比如,学校和科系是聚合关系,科系是个体,学校是一个整体。
4. 组合,Composition,实心菱形(指向组合体)+实线+箭头(被组合的对象)
关联的一种,一种更强的聚合。组合体负责被组合对象的生命周期。
Java中以成员变量的形式出现。
比如,人由头,手,脚等部件组合而成,头和手这些不能单独存在。
5. 泛化,Generalization,空心箭头(指向父类)+实线
父类是一个泛化的类,子类是更具体的类。
Java中以继承实现。
比如,人是泛化的类,而学生或者老师是更具体的类。他们继承于人。
6. 实现,Implementation,空心箭头(指向接口)+虚线
Java中以接口实现。
比如,定义一个包含上课,考试等方法的接口,学生类可以实现这个接口。
原文链接:https://www.f2er.com/javaschema/286346.html