《软件建模与设计: UML、用例、模式和软件体系结构》一一2.4 类图

本节书摘来自华章计算机《软件建模与设计: UML、用例、模式和软件体系结构》一书中的第2章,第2.节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.4 类图

在类图中,类用方框描绘,类之间的静态(永久)关系被描绘成连接方框之间的连线。UML表示法支持以下三种类之间的主要关系类型:关联(association)、整体/部分关系(whole/part relationship)和泛化/特化(generalization/specialization relationship)关系,这些关系如图2-3所示。第四种关系,即依赖关系(dependency relationship),经常被用来表示包之间是如何进行关联的,2.7节将对其进行描述。
《软件建模与设计: UML、用例、模式和软件体系结构》一一2.4 类图

图2-3 UML表示法中类图内的关系
2.4.1 关联
一个关联(association)是两个或多个类之间的一个静态的、结构化的关系。两个类之间的关联被称为二元关联(binary association),它用两个类框之间的连线表示,如图2-3a中连接classA方框和classB方框的连线。一个关联具有一个名字,并且可选择性地具有一个黑色小箭头来表示关联名称的阅读方向。每个连接类的关联线的末端标明关联的多重性(multiplicity),多重性指的是一个类的多少个实例关联到另一个类的一个实例。此外,可以用棍状箭头描绘导航的方向。
一个关联的多重性(multiplicity)指的是一个类的多少个实例可能和另一个类的单个实例有关(如图2-3a的右边)。一个类的多重性可以是一个(1)、可选(0..1)、零或多个()、一个或多个(1..),或者特定的数值范围(m...n),其中m和n是数值。
2.4.2 聚合和组合层次
聚合和组合层次(aggregation and composition hierarchy)是整体/部分(whole/part)的关系。组合关系(用黑色菱形表示)是一个比聚合关系(用空心菱形表示)更强的整体/部分关系的形式。菱形与聚合或组合中(ClassWhole)的类方框相连接(见图2-3b)。
2.4.3 泛化和特化层次
泛化/特化层次(generalization/specialization hierarchy)是一种继承关系(inheritance relationship)。泛化被描绘为一个连接子类(subclass)到父类(superclass)的具有箭头的连线,箭头与表示父类的方框连接(见图2-3c)。
2.4.4 可见性
可见性(visibility)指类中的一个元素是否在类外可见,如图2-4所示。在类图中描绘可见性是可选的。公有可见性(public visibility)使用+号,表示一个元素在类的外部是可见的。私有可见性(private visibility)使用-号,表示一个元素只在定义它的类的内部是可见的,对于其他类是隐藏的。受保护可见性(protected visibility)使用#号,表示一个元素在定义它的类及其所有子类中是可见的。
《软件建模与设计: UML、用例、模式和软件体系结构》一一2.4 类图

图2-4 UML表示法中类图内的可见性