概述

UML(Unified Modeling Language)统一建模语言,对于程序员来说接触比较多的就是类图了。在学习 UML 的时候没有好好学,导致后面许多别人画的类图看不懂,一些优秀的资料也看不懂,看到有 UML 的都会下意识的跳过,这样下去不行,所以回来学习 UML 相关知识。

类之间的关系

继承

继承表示的是某个东西是什么,例如:宝马是汽车。

在 Java 继承用 extends 来表示。

在 UML 中常用一个实线的空心箭头表示

实现

实现和继承类似,也是表示是什么的关系,通常会是抽象类。

在 Java 中实现用 implements 表示

在 UML 中常用一个虚线空心箭头表示

依赖

依赖表示某个对象在运行时需要用到另外一个对象。

在代码中通常作为函数的参数。

在 UML 中通常用虚线实心箭头表示,箭头指向被依赖者

关联

关联关系表示两个对象之间的关系,一个对象知道另一个,而且状态的变化不会影响到另一个。

在代码中通常以成员变量的形式存在。

在 UML 中通常用实线实心箭头表示,箭头指向被依赖者

聚合

聚合表示的是整体和部分的关系,但是部分可以脱离整体而独立存在。不是强依赖关系。

在代码中通常以成员变量的形式存在。

在 UML 中通常用实线空心菱形箭头表示,菱形指向整体

组合

组合表示的是整体包含部分的关系,也就是部分不能脱离整体而独立存在,整体不存在了部分也不存在,是一种强依赖的关系。

组合在代码中通常以成员变量的形式存在。

在 UML 中通常用实线实心菱形箭头表示,菱形指向整体

总结

UML 类图的知识点不多,但是比较容易搞混,图形长得特别像。这就导致了学习起来容易忘记,看到的时候会下意识的跳过不看。这样你会错过一个从整体去考虑事物的一个方法,你会花更多的时间和精力在这个地方,所以还是有必要学习 UML 的相关知识。

学习 UML 非常容易搞混,建议隔几天复习一次,这样慢慢记住并且强化。碰到一些开源库,可以自己画一画 UML 类图,这样可以加深印象。不要因为工作中用不到就不去学习这个强有力的工具。

参考