类之间的关系
- 依赖
- 泛化(继承)
- 实现
- 关联
- 聚合
- 组合
依赖关系
只要类中用到了对方,它们之间就存在依赖关系。如果没有对方,连编译都通过不了。剩余5种关系都是依赖关系的特例。
package com.atguigu.uml.dependence;
public class PersonServiceBean {
private PersonDao personDao;// 类
public void save(Person person) {
}
public IDCard getIDCard(Integer personid) {
return null;
}
public void modify() {
Department department = new Department();
}
}
总结
- 类中用到了对方
- 类的成员属性
- 类中方法的返回类型
- 方法接收的参数类型
- 类中方法使用了该类
泛化关系
泛化关系实际上就是继承关系,是依赖关系的特例
实现关系
实现关系实际上就是A类实现了B类的接口,属于依赖关系的特例
关联关系
聚合关系
聚合关系表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以该关系具有导航性与多重性。 比如 电脑和鼠标、键盘的关系:
package com.atguigu.uml.aggregation;
public class Computer {
private Mouse mouse; //鼠标可以和computer分离
private Moniter moniter;//显示器可以和Computer分离
public void setMouse(Mouse mouse) {
this.mouse = mouse;
}
public void setMoniter(Moniter moniter) {
this.moniter = moniter;
}
}
组合关系
组合关系:也是整体与部分的关系,但是整体与部分不可以分开。 总结就是:组合关系,同生共死 如下程序中我们定义实体Preson类、IDcard、Head,那么Head类与Person类就是组合关系,IDcard和Person类就是聚合关系。 但如果在程序Person实体中定义了对IDcard进行级联删除,及删除Person时连同IDcard一起删除,那么IDcard和Person就是组合关系了。
package com.atguigu.uml.composition;
public class Person {
private IDCard card; //聚合关系
private Head head = new Head(); //组合关系
}