1,关联关系(Dependence)
关联体现的是两个类之间语义级别的一种强依赖关系,有时也被称为“相识”或“引用”关系。这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。关联可以是单向、双向的。
例:
class Employee{
private int eid;//员工编号
private String name;//员工姓名
private Computer coumputer;//员工所使用的电脑
//....
}
class Computer{
}
依赖关系有三种情况:
1)A类是B类方法当中的一个参数;
2)A类是B类中的(某中方法的)局部变量;
3)A类向B类发送消息,从而影响B类发生变化;
2,泛化关系(Generalization)
表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的。
例:
public class Person
{
protected String name;
protected int age;
public void move()
{
……
}
public void say()
{
……
}
}
public class Student extends Person
{
private String studentNo;
public void study()
{
……
}
}
3,依赖关系(Dependence)
依赖就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。比如人出行需要坐车,这时候人和车之间的关系就是依赖。
例:
class A{
public B method(C c,D d){
E e = new E();
...
B b = new B();
...
return b; } }
4,聚合关系(Aggregation)
合是关联关系的一种特例,它体现的是整体与部分的关系。整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。比如公司和员工的关系,汽车类与引挚类,轮胎类之间的关系等等。
例:
class Car{
private Engine engine;//引擎
private Tyre[] tyres;//轮胎
}
5,组合关系(Composition)
组合也是关联关系的一种特例,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。
例:
class Window{
private Menu menu;//菜单
private Slider slider;//滑动条
private Panel panel;//工作区
}
6,实现关系(Implementation)
用来规定接口和实线接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。