目录
类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。
一、依赖关系(Dependence)
1、简介
只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编绎都通过不了。
2、代码
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();
}
}
public class PersonDao{}
public class IDCard{}
public class Person{}
public class Department{}
3、小结
1) 类中用到了对方
2) 如果是类的成员属性
3) 如果是方法的返回类型
4) 是方法接收的参数类型
5) 方法中使用到
二、泛化关系(generalization)
1、简介
泛化关系实际上就是继承关系,它是依赖关系的特例
如果 A 类继承了 B 类,我们就说 A 和 B 存在泛化关系
三、实现关系(Implementation)
1、简介
实现关系实际上就是 A 类实现 B 接口,它是依赖关系的特例
四、关联关系(Association)
1、简介
关联通过其对象建立两个单独类之间的关系。
这种关系可以是一对一,一对多,多对一,多对多
五、聚合关系(Aggregation)
1、简介
聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开。
聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。
如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;
组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实线来表示:
2、代码
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;
}
}
六、组合关系(Composition)
1、简介
组合关系:也是整体与部分的关系,但是整体与部分不可以分开。
再看一个案例:在程序中我们定义实体:Person 与 IDCard、Head, 那么 Head 和 Person 就是 组合,
IDCard 和Person 就是聚合。
但是如果在程序中 Person 实体中定义了对 IDCard 进行级联删除,即删除 Person 时连同 IDCard 一起删除,
那么 IDCard 和 Person 就是组合了.
2、代码
public class Computer {
private Mouse mouse = new Mouse(); //鼠标可以和computer不能分离
private Moniter moniter = new Moniter();//显示器可以和Computer不能分离
public void setMouse(Mouse mouse) {
this.mouse = mouse;
}
public void setMoniter(Moniter moniter) {
this.moniter = moniter;
}
}