一、关联关系总结:
1.对象和对象之间的连接。在Java中,关联关系的代码表现形式为一个类做为另一个类的属性类型存在。即“有”的关系:”has-a”。
2.关联关系的方向:关联关系分为单向关联和双向关联
①单向关联: A类关联B类。
②双向关联:A类关联B类,B类关联A类。
3.关联关系的多重性:①一对一关联:一个学生,只能在一个班级里学习。
②一对多关联:一个学生,可以参加多个班级学习。
③解决一对多的关联的方案:集合和数组。
集合
例:
public class Classes{
}
public class Student{
private List Classess;
}
数组
例:
public class Classes{
}
public class Student{
private Classes[] Classess;
}
4.关联关系的特殊情况:如果两个互相关联的类中有整体和部分的关系,关联关系分为: 聚合和组合,主要区别在于生命周期不同。
二、依赖关系总结:
1.依赖关系的定义:依赖关系(use-a),指一个类A使用到了另一个类B。
2.依赖关系的特性:这种关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。
3.依赖具体表现:在代码层面,依赖关系表现为类B作为参数被类A在某个method。
4.依赖与关联的区别:
关联是“HAS”关系,依赖是“USE”关系:
①A类关联B类,指的是B类对象作为A类的属性存在,称为“has”关系。
②A类依赖B类,指的是B的对象作为A类的方法参数存在,称为“use”关系。
生命周期不同:
①如果A类关联B类,那么创建A类的对象时实例化B类的对象,直到A类对象被销毁,所关联的B类对象也被销毁。即只要A类对象存在,B类对象就存在。
②如果A类依赖B类,那么只有当A类对象调用到相应方法时,B类对象才被临时创建,方法执行结束,B类对象即被回收,A类和B类之间的依赖关系是一种瞬时的关系。