UML类图基本关系

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

实例

类之间的关系

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

泛化(继承inheritance)

空心箭头的实线

实现(接口继承)

空心箭头的虚线

依赖

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

箭头虚线

关联

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

实线

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

聚合

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

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

空心菱形箭头实线

组合

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

实心菱形箭头实线

关联、聚合、组合的差异

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • UML类图用来定义系统中的类,包括描述类的结构和类之间的关系。类图的主要作用于描述系统的静态结构。先看一张图(图片...
    Josaber阅读 6,165评论 0 5
  • 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Di...
    雷雷_zll阅读 13,415评论 0 14
  • 在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realizat...
    赵宇_ios阅读 700评论 0 1
  • 忘记了uml类图连线之间的关系,记录一下。 1. 关联关系 关联(Association)关系是类与类之间最常用的...
    cutieagain阅读 1,921评论 0 2
  • 最好尽早弄明白学习的目的。这是最早需要搞清楚的问题,如果目的不清楚,那干什么、怎么干都不是顺从自己内心的选择,自然...
    BoBoWa阅读 375评论 0 0