UML 类图

  • Vehicle接口的实现类CarBicycle:实现关系(纵向)。
  • SUV继承Car:泛化关系(纵向)。
  • Car拥有TyreEngine:组合关系(横向)。
  • SchoolStudent:聚合关系(横向)。
  • StudentIdCard:关联关系(横向)。
  • StudentBicycle:依赖关系(横向)。

横向关系的强弱程度:组合 > 聚合 > 关联 > 依赖

实现关系 Realization


实现关系:B实现A。
抽象概念无法直接用来定义对象,只有指明具体子类才可以。

泛化关系 Generalization


泛化关系(is-a):B继承A。

聚合关系 Aggregation


聚合关系:A由B构成,B构成A。
整体和部分不是强依赖的,即时整体不存在了,部分也可以存在。
代码体现:成员变量。

组合关系 Composition


组合关系:A由B组成,B组成A。
组合关系是一种强依赖的特殊聚合关系,如果整体不存在,则部分也不存在。
代码体现:成员变量。

关联关系 Association


关联关系:表示A和B知道对方的属性和方法。
可以是双向也可以是单向的,箭头指向被拥有者。
代码体现:成员变量。

依赖关系的 Dependency


依赖关系:B依赖A。
是一种临时性关系,随着运行时的变化,依赖关系可能发生变化。依赖也有方向,应该尽量保持单向依赖。
代码体现:临时变量、方法参数、静态方法调用等。