UML类图基本关系

类之间有着各种各样的关系, 使用UML的类图,可以帮助我们设计、梳理各个类之间的关系

实例

UML类图基本关系_第1张图片

类之间的关系

  • 泛化 generalization
  • 实现 realize
  • 依赖 dependency
  • 关联 association
  • 聚合 aggregation
  • 组合 composition

泛化(继承inheritance)

空心箭头的实线

实现(接口继承)

空心箭头的虚线

依赖

一个类A使用到了另一个类B," ... uses a ...",被依赖的对象只是作为一种工具在使用,而并不持有对它的引用。
表现在代码层面,为类B作为参数被类A在某个method(方法)中使用。

箭头虚线

关联

两个类之间、或类与接口之间一种强依赖关系,是一种长期的稳定的关系," ... has a ..."
在代码层面上,被关联的类以类属性的形式出现在关联类中,也可能是关联类引用了一个类型为被关联类的全局变量。

实线

*没有箭头表示相互知道,有箭头表示单方面知道

聚合

聚合 是表示整体与部分的一类特殊的关联关系,是的包含" ... owns a ..." 关系,成分类可以不依靠聚合类而单独存在,可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享

班级由学生组成(班级知道学生,学生不知道班级)

空心菱形箭头实线

组合

组合关系,是一类的整体与部分的包含关系" ... is a part of ..."。成分类必须依靠合成类而存在。整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。合成类完全拥有成分类,合成类负责创建、销毁成分类别。

UML类图基本关系_第2张图片

实心菱形箭头实线

关联、聚合、组合的差异

当一个类作为另一个类某个方法的参数时,为关联

两者的差别主要描述了子类的生命周期的不同。组合关系中,一旦父类被销毁子类也会随之销毁;聚合关系中,子类的生命周期与父类独立。

例如,一个大学包含若干个系(如化学系),每个系由若干名教授。如果大学撤销,这些系也就不复存在了,但这些教授仍会继续存在。还需注意,一名教授可以在不同系甚至不同学校兼职,而一个系不能属于两所大学。所以,大学与系之间是组合关系,而系与教授是聚合关系。

你可能感兴趣的:(UML类图基本关系)