学习 UML(二)

类图

类图(class diagram)只是 UML 的一部分,但它们可能是最常用的,因为类图在描述面向对象关系时非常有用。

类、抽象类、接口

类是类图的主要部分。类用带有类名的方框来描述,如下图所示:

抽象类通常使用斜体的类名,或者增加 {abstract} 到类名下来表示,如下图所示:

接口的定义方式和类相同,但接口必须增加 <<interface>> 到类名上来表示,如下图所示:

属性

属性用于描述一个类的属性,属性直接列在类名下面的格子中。属性使用符号来表示类属性的可见性,其中 + 对应 public- 对应 private# 对应 protected,如下图所示:

操作

操作用于描述类方法,操作表示类方法可见性的办法与属性一致。类方法有参数,则包含在括号之中;类方法有返回类型,则用冒号来描述,如下图所示:

继承

UML 一般用「泛化」来描述继承关系。这个关系用从子类到父类的一条线来标识,线的顶端有一个空心闭合箭头,如下图所示:

实现

UML 用「实现」来描述接口和实现接口的类之间的关系。这个关系用从实现接口的类到接口的一条虚线来标识,线的顶端有一个空心闭合箭头,如下图所示:

关联

当一个类的属性保存了对另一个类的一个实例或多个实例的引用时,就产生了关联。类之间的关联有单向关联、双向关联和多个引用关联,如下图所示:

聚合和组合

聚合和组合都描述了一个类长期持有其他类的一个或多个实例的情况。通过聚合或组合,被引用的对象实例成为引用对象的一部分。

聚合的情况下,被包含对象是容器的一个核心部分,但是它们也可以同时被其他对象所包含。聚合关系用一条空心菱形开头的线来说明。

组合则是一个更强的关系。在组合中,被包含对象只能被它的容器所引用。当容器被删除时,它也应该被删除。组合关系可以用类聚合关系的方式描述,但是菱形必须是实心的。


描述使用

一个对象使用另一个对象的关系在 UML 中被描述为一个依赖关系。一个被使用的类可以作为类方法的参数传递或者作为方法调用的结果得到。

使用注解

类图可以捕捉到系统的结构,但类图并不能解释类处理任务的过程,可以通过使用注解来补充说明。注解由一个折角的方框组成。它通常包含伪代码片段。注解使类图变得易于理解。