UML 类图
UML(统一建模语言,Unified Modeling Language)类图是用于定义、可视化和文档化系统中的类及它们之间的关系的一种工具。它是面向对象设计中最常用的图表之一,有助于理解系统的结构。下面是一些关于如何创建和解读 UML 类图的基本概念和指南。
UML 类图的基本元素
类(Class):
- 一个矩形框,通常分为三部分:类名、属性和方法。
- 类名:位于顶部,表示类的名称。
- 属性:位于中部,列出类的成员变量,格式为
可见性 变量名: 类型。 - 方法:位于底部,列出类的方法,格式为
可见性 方法名(参数): 返回类型。 - 可见性标记包括:
+公有(public)、#保护(protected)、-私有(private)。
接口(Interface):
- 表示一种特殊的类,它只包含方法声明而不包含实现。
- 在 UML 中,接口通常用带有关键字«interface»的类来表示,或者使用圆形图标表示。
关系(Relationships):
关联(Association):两个类之间的一种关系,可以是单向或双向的。关联关系可以通过箭头指向目标类,并且可以在边上标明角色名和多重性(如 0..1, 1, 0..*等)。
聚合(Aggregation):一种特殊类型的关联,表示整体与部分的关系,但部分可以独立于整体存在。用空心菱形表示,连接到整体的一端。
组合(Composition):比聚合更强的关系,表示整体拥有部分,且部分不能脱离整体单独存在。用实心菱形表示,同样连接到整体的一端。
继承(Generalization):表示一般化关系,即子类继承自父类。用带空心三角形箭头的直线表示,从子类指向父类。
实现(Realization):当一个类实现了一个接口时使用。用带空心三角形箭头的虚线表示,从实现类指向接口。
依赖(Dependency):表示一个类对另一个类的短暂使用。这种关系较弱,通常用虚线箭头表示,并在箭头上标注原因或上下文。
示例
假设我们有一个简单的图书馆管理系统,包含Book类、Member类和Library类,以及一个名为Borrowable的接口。
plaintext
+------------------+ +------------------+
| «interface» | | Library |
| Borrowable |<>--------| |
+------------------+ +------------------+
^ |
| |
| |
+------------------+ +------------------+
| Book | | Member |
+------------------+ +------------------+在这个例子中:
Book实现了Borrowable接口。Library与Book和Member有某种形式的关联,这可能意味着Library管理着这些书籍和会员。
每个类的具体内容可能如下所示:
plaintext
+------------------+
| Book |
+------------------+
| -title: String |
| -author: String |
+------------------+
| +borrow(): void |
| +return(): void |
+------------------+通过这种方式,UML 类图不仅展示了各个类的内部结构,还清晰地表达了它们之间的相互关系,这对于设计和理解复杂的软件系统非常有用。