UML类图结构解析
UML类图是一种结构图,用于描述系统的静态结构。它主要用于展示系统中的类(class)、接口(interface)、协作(collaboration)、数据类型(data type)等以及它们之间的静态结构和关系。在大话设计模式书中,作者经常使用UML类图来为我们展示各种设计模式的特点,因此作者专门花了一小节来为我们详细介绍了如何去看一个UML类图。
类图的组成部分
一个UML类图主要由以下三个部分组成:
-
类(Class):类是类图的基本构建块,它是一种逻辑结构,具有属性和方法。在类图中,类通常表示为一个带有三个部分的矩形:
类名
、属性
和方法
。其中类名是第一层,如果是抽象类,则类名用斜体表示;属性是第二层,通常表示类中的字段;方法是第三层,表示类中的方法。‘+’ 表示public,‘-’表示private,‘#’表示protected。
-
关系(Relationship):类之间的关系包括关联、聚合、组合、依赖、继承和实现等。
-
接口(Interface):接口是一种特殊的类,它只有方法的声明,没有实现。在UML类图中,接口通常有两种表示形式,一种是在类名的上方加《interface》标识,另外一种则是“棒棒糖表示法”。如下图所示:
类图的关系
类图中的关系主要有以下几种:
-
关联(Association):关联是类与类之间的一种引用关系,表示一个类知道另一个类的属性和方法。关联可以是单向的或双向的。用实线箭头来表示。
-
聚合(Aggregation):聚合是一种特殊的关联,表示"整体-部分"的关系。在聚合关系中,部分可以脱离整体而独立存在。用空心的菱形+实线箭头来表示。
-
组合(Composition):组合也是一种特殊的聚合,表示一种更强的"整体-部分"关系。在组合关系中,部分不能脱离整体而独立存在。用实心的菱形+实线箭头来表示。
-
依赖(Dependency):依赖是一种使用关系,表示一个类的实现需要另一个类的协助。用虚线箭头来表示。
-
继承(Inheritance):继承是一种特殊的关系,表示"一般-特殊"的关系,也称为"父-子"关系,用空心三角形+实线表示。
-
实现(Realization):实现是一种特殊的关系,表示一个类实现了接口的所有方法。用空心三角形+虚线表示。
(注:上面这些图片都是作者原文中举例用到的图片,为了偷懒直接截取下来了)