我们一定要给自己提出这样的任务:第一,学习,第二是学习,第三还是学习。
学习从来无捷径,循序渐进登高峰。
目录
- 一、依赖关系(Dependence)
- 二、泛化关系(generalization)
- 三、实现关系(Implementation)
- 四、关联关系(Association)
- 五、聚合关系(Aggregation)
- 六、组合关系(Composition)
类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合
一、依赖关系(Dependence)
只要是在类中用到了对方
,那么他们之间就存在依赖关系。如果没有对方,连编
绎都通过不了。
代码示例:
public class PersonServiceBean {
private PersonDao personDao;//类
public void save(Person person) {
}
public IDCard getIDCard(Integer personid) {
}
public void modify() {
Department department = new Department();
}
}
public class PersonDao {
}
public class IDCard {
}
public class Person {
}
public class Department {
}
总结:
- 类中用到了对方
- 可以是类的成员属性
- 可以是方法的返回类型
- 可以是方法接收的参数类型
- 方法中使用到
二、泛化关系(generalization)
泛化关系实际上就是继承关系
,他是依赖关系的特例
代码示例:
public abstract class DaoSupport {
public void save(Object entity) {
}
public void delete(Object id) {
}
}
public class PersonServiceBean extends Daosupport {
}
总结:
- 泛化关系实际上就是继承关系
- 如果A类继承了B类,我们就说A和B存在泛化关系
三、实现关系(Implementation)
实现关系实际上就是A类实现B接口,他是依赖关系的特例
代码示例:
public interface PersonService {
public void delete(Interger id);
}
public class PersonServiceBean implements PersonService {
public void delete(Interger id) {
}
}
四、关联关系(Association)
关联关系实际上就是类与类之间的联系
,他是依赖关系的特例
关联具有导航性:即双向关系
或单向关系
单向一对一关系:
public class Person {
private IDCard card;
}
public class IDCard {
}
双向一对一关系:
public class Person {
private IDCard card;
}
public class IDCard {
private Person person;
}
五、聚合关系(Aggregation)
聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开
。聚
合关系是关联关系
的特例,所以他具有关联的导航性与多重性。
如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的。
六、组合关系(Composition)
也是整体与部分的关系,但是整体与部分不可以分开
。
案例:在程序中我们定义实体:Person与IDCard、Head, 那么 Head 和
Person 就是 组合,IDCard 和 Person 就是聚合。
但是如果在程序中Person实体中定义了对IDCard进行级联删除,即删除Person时
连同IDCard一起删除,那么IDCard 和 Person 就是组合了。
public class Person {
private IDCard card;
private Head head = new Head();
}
public class IDCard {
}
public class Head {
}