一文读懂UML中的类图关系

706 阅读2分钟

本文已参与「新人创作礼活动」,一起开启掘金创作之路。

以可视化的方式将业务领域的概念抽象成一套模型并进行展现,学名领域建模,也就是UML中的类图关系。

我们常见的类图一般长这样:

UML.png

从图中可以看到,里面有各种各样的箭头和线,虚虚实实,还有三角、菱形,其实这些都分别对应类图中的几种关系。

我们以上图为例,从上往下看。

1、依赖(Dependency)

  • 【图解】:动物活着依靠水和氧气
  • 【关系描述】:一个类的实现需要另一个类的协助
  • 【箭头及指向】:带箭头的虚线,指向协助类

2、泛化,俗称继承(Generalization)

  • 【图解】:鸟也是动物的一种
  • 【关系描述】:指定子类如何特化父类的所有特征和行为
  • 【箭头及指向】:带三角箭头的实线,指向父类

3、组合(Composition)

  • 【图解】:鸟有翅膀,翅膀离开鸟就成了烤翅,哈哈~
  • 【关系描述】:整体与部分的关系,且部分不能离开整体单独存在
  • 【箭头及指向】:带实心菱形的实线,菱形指向整体

4、实现(Implementation)

  • 【图解】:飞是鸟类特有的技能
  • 【关系描述】:一种类与接口的关系,表示类是接口所有特征和行为的实现
  • 【箭头及指向】:带三角箭头的虚线,指向接口

5、聚合(Aggregation)

  • 【图解】:大雁聚集在一起就成了雁群,布一个雁形阵
  • 【关系描述】:整体与部分的关系,且部分能离开整体单独存在
  • 【箭头及指向】:带空心菱形的实线,菱形指向整体

6、关联(Association)

  • 【图解】:企鹅生活在南极
  • 【关系描述】:是一种拥有的关系,它使一个类知道另一个类的属性和方法
  • 【箭头及指向】:带普通箭头的实心线,指向被拥有者

以上,就是UML类图中常见的几种关系:

UML-7.png

此外,这几种关系还有个强弱之分,泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

不服气的小伙伴可能会说,我凭啥要按照这个来,我不服,你可以不服,但是这个是业内认可的方式,爱服不服。

最后,领域建模下几个好处:

1、统一语言:开发团队使用同一套概念模型,使团队沟通更加顺畅,分歧易于解决;

2、知识沉淀:通过对业务领域的熟悉过程,能够以模型的方式沉淀下来,使团队保持系统结构的清晰;

3、需求校验:在需求沟通时,能够快速明确哪些需求是合理的,哪些是违反业务规则的;

【注】文中若有任何疑问或不当之处,欢迎指出。

-EOF-