1、依赖关系(Dependency)
类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系。A类使用B类,则说明A类依赖于B类,这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A。
体现为局部变量、函数的参数或者是对静态方法的调用。2、关联关系(Association)
关联关系使一个类知道另外一个类的属性和方法,是一种强依赖关系,不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。关联可以是单向、双向的;可以是一对一、一对多、多对多。
关联关系是通过成员变量来实现的。例如下图Subject是Proxy的成员变量。
3、聚合关系(Aggregation)
体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。
聚合关系也是通过成员变量来实现的。
4、组合关系(Composition)
体现的是一种contains-a的关系,这种关系比聚合更强,同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。组合关系不能共享。
组合关系是通过成员变量来实现的。
5、泛化关系(Generalization)
一个类继承另外的一个类的功能,也就是通常所说的类的继承关系。
泛化关系通过类的继承来实现的。
6、实现关系(Realization)
指的是一个class类实现interface接口的功能。
实现关系通过类实现接口来实现。