关联 Association 表示一类对象对另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等 【UML类图表示】:实线连接 【代码实现】:一个类的对象作为另一个类的成员变量。
聚合 Aggregation 表示整体与部分的关联关系(关联的一种)(生命周期不同),例如汽车发动机是汽车的组成部分,但发动机可以独立存在。 【UML类图表示】:带空心菱形的直线表示(菱形为整体,箭头指向部分) 【代码实现】:成员对象通常作为构造方法、Setter方法或业务方法的参数“注入”整体对象中。(并没有直接new实例,而只是“先声明,再传入”)
组合 Composition 表示整体和部分的关联关系(关联的一种)(生命周期相同,整体和部分同生共死),例如人的头部与嘴,如果头部不存在,嘴也就不存在了。 【UML类图表示】:带实心菱形的直线表示(菱形为整体,箭头指向部分) 【代码实现】:通常在整体类的构造方法中直接实例化成员类(成员对象域和整体对象有同样的生命周期,也就是要“共生死”)
依赖 Dependency 表示一种使用关系,特定事物的改变可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时,使用依赖关系。例如,教师上课时使用投影仪进行演示。 【UML类图表示】:用带箭头的虚线表示,由依赖的一方指向被依赖的一方。 【代码实现】: 1) (最常用)将一个类的对象作为另一个类中方法的参数(做参数) 2) 在一个类的方法中将另一个类的对象作为其局部变量(做局部变量) 3) 在一个类的方法中调用另一个类的静态方法 Note: 并没有被声明为类成员