2. UML 类图

UML 类图

统一建模语言(Unified Language,UML)是用来设计软件的可视化建模语言,特点是简单、统一、图形化、能表达软件设计中的动态和静态信息。

UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图。

我们主要了解的就是 UML 类图,类图主要体现的就是静态信息。UML 类图是显示了模型的静态结构(类的内部结构、类与类的关系)。

类图的表现方式

类使用包含类、属性(field)、方法(method)并且带有分割线的矩形表示。比如下图的 Employee,包含 nameageaddress 三个属性和 work 方法。

UML 中的符号有三种:

  • -:表示 private
  • +:表示 public
  • #:表示 protected

属性的完整表达方式为:可见性 名称: 类型[ = 缺省值]

方法的完整表达方式为:可见性 名称(参数列表) [ : 返回类型]

注意:

  1. 中括号中的内容是可选的。
  2. 也有将类型放在变量名前边,返回值类型放在方法名前面的写法。

类和类/接口之间关系的表示方式

关联关系

关联关系是对象之间的一种引用关系。分为一般关联关系、聚合关系、组合关系。

一般关联关系

单向关联

上图就是单向关联关系,使用一个带箭头的实线表示关系,Customer 引用 Address

双向关联

上图就是双向关联关系,使用不带箭头的实现表示关系,CustomerProduct 相互引用,但是顾客可以购买多个商品,所以在 Customer 中显示的是 List

自关联

自关联用到的其实就是自己包含自己类型的变量。

聚合关系

聚合关系是整体对象(整体)和成员对象(部分)之间的关系。

比如学校和老师,学校中包含老师,老师作为学校的一部分存在。

但是成员对象也可以脱离整体对象存在。比如学校停办了,老师仍然存在,可以去其他的学校任职。

聚合关系可以使用带空心菱形的实线表示,菱形的一方指向整体。

组合关系

组合关系表示类之间整体和部分之间的关系,但他是一种更加强烈的聚合关系。

在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也就不存在了,部分对象不可以脱离整体而存在,例如头和嘴的关系,头没了嘴也不可能独立存在。

组合关系使用带实心菱形的实线表示,菱形的一方指向整体。

依赖关系

依赖关系是一种使用关系,它是对象之间耦合度最弱的一种关联关系,是临时性的关联。比如在代码中,某一个类的方法通过局部变量、方法的参数,或者通过静态对象的方式访问另一个类(被依赖的类)的某些方法来完成一些职责。

依赖关系使用带箭头的虚线表示,箭头从使用类开始,指向被依赖(被使用)的类。也就是 Driver 依赖于 Car

继承关系

继承关系是对象之间耦合度最大的一种关系。在类图中,继承关系也叫做泛化关系。

继承关系使用带空心三角箭头的实线表示,箭头从子类开始,指向父类。

实现关系

实现关系是接口和类之间的关系。

实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。