UML类图快速掌握

---

在软件开发的世界里,有效的沟通是成功的关键。UML(统一建模语言)类图作为一种强大的工具,帮助开发者和团队成员以一种清晰、标准化的方式理解和交流软件系统的结构。

什么是UML类图?

UML(统一建模语言,Unified Modeling Language)是一种用于软件开发的标准化建模语言。它提供了一套图形化的符号和规则,用于描述、设计、构建和维护软件系统的架构。UML广泛应用于面向对象的分析和设计过程中,帮助开发者理解系统的需求,设计系统的结构,以及规划系统的开发。UML的主要组成部分包括:

  • 用例图(Use Case Diagrams):描述系统的功能以及系统与用户(或其他系统)之间的交互。用例图展示了用例(系统的功能)以及参与者(与系统交互的用户或其他系统)。
  • 类图(Class Diagrams):展示了系统中的类(对象的蓝图)以及类之间的关系,如继承(泛化)、关联、聚合和组合。
  • 对象图(Object Diagrams):是对类图中对象实例的特定实例化。对象图展示了对象之间的实例关系。
  • 序列图(Sequence Diagrams):描述对象之间消息传递的时间序列。序列图用于展示对象如何交互以及交互的顺序。
  • 协作图(Collaboration Diagrams):也称为通信图,它展示了对象之间的结构关系以及它们之间的交互。协作图强调的是对象之间的关系。
  • 状态图(State Diagrams):描述对象可能处于的各种状态以及状态之间的转换。状态图用于展示对象在其生命周期中的行为。
  • 活动图(Activity Diagrams):类似于流程图,描述了业务流程或系统中的工作流程。活动图展示了活动的顺序以及决策点。
  • 组件图(Component Diagrams):描述了系统的物理组件以及它们之间的关系。组件图用于展示系统的架构。
  • 部署图(Deployment Diagrams):描述了系统的物理部署,包括硬件和软件的配置。部署图展示了系统的物理结构。

UML的这些图表可以帮助团队成员之间进行有效沟通,确保对系统的理解一致,并且可以作为软件开发过程中的重要文档。UML的标准化使得不同团队和组织能够更容易地理解和使用这些模型。本文仅介绍类图的相关知识。

类图(Class Diagram)是UML(统一建模语言)中用于展示系统中类的结构和类之间关系的静态结构图。它是面向对象分析和设计中最常用的图之一,用于表示系统中的实体以及这些实体之间的关系。类图有助于理解系统的静态设计,即系统在不执行任何操作时的结构。

类图是面向对象设计中最常用的UML图之一。

类在UML类图中如何表示?

普通类

在UML类图中,类使用包含类名、属性和方法且带有分割线的矩形来表示。

如图表示一个Employee类,其包含name、age和address这3个属性,以及work()方法。

访问权限符号的具体含义为:

  • +表示public
  • -表示private
  • #表示protect

属性和方法的完整形式为:

  • 属性的完整表示形式:可见性 名称 : 类型 [ = 缺省值]
  • 方法的完整表示形式:可见性 名称(参数列表) [ :返回类型]

抽象类

抽象类的表示方法和普通类的表示方法基本一致,需要注意以下两点

  • 抽象类类名用斜体表示,抽象方法用斜体表示
  • 抽象类类图的边框建议用虚线表示(建议)

接口

接口的表示方法和普通类的表示方法基本一致,需要注意以下两点

  • 接口名称用斜体表示,抽象方法用斜体表示
  • 接口取消属性栏(建议)

如何表示类与类的关系?

在UML类图中,类与类之间的关系是描述不同类之间如何相互作用和相互关联的。这些关系在UML类图中的表示方式有助于开发者理解类之间的静态结构,从而设计出更加合理和可维护的系统架构。

UML类图中常见的几种类关系包括:关联关系聚合关系组合关系依赖关系继承关系实现关系

关联

关联(Association)描述两个类之间的结构关系,表示一个类的对象与另一个类的对象之间有联系。

1. 单向关联

在UML类图中,单向关联用一个带箭头的实线表示。

如图所示,每个顾客都有一个地址,这通过让Customer类持有一个类型为Address类的成员变量实现。

2. 双向关联

双向关联就是双方各自持有对方类型的成员变量,即“你中有我,我中有你”。
在UML类图中,双向关联用一个不带箭头的实线表示。

如图所示,在Customer类中维护一个Product,表示一个顾客限定一个商品;在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。

3. 自关联

在UML类图中,自关联用一个带箭头的且指向自身的实线表示。

如图所示,Node类包含类型为Node的成员变量,即“自己包含自己”。

聚合

聚合(Aggregation)表示“整体-部分”关系,但部分可以独立于整体存在。聚合通常用一个空心菱形表示,菱形指向整体。

程序中整体的类往往在加载的时候实例化部分的类。

组合

组合(Composition)是一种更强的聚合关系,表示“整体-部分”关系,部分的生命周期依赖于整体,即整体不存在,则部分不存在,部分不能脱离整体而存在。组合通常用一个实心菱形表示,菱形指向整体。

依赖

依赖(Dependency)描述一个类(或模块)的变化可能影响到另一个类(或模块)。依赖通常用一条带箭头的虚线表示,箭头指向被依赖的类。

继承

继承(Generalization)表示一般与特殊的关系,即一个更通用的类(父类)与一个更具体的类(子类)之间的关系。子类继承父类的属性和方法。继承通常用一条带空心箭头的实线表示,箭头指向父类。

实现

实现(Implementation)用于表示类实现接口的关系。在UML类图中,实现关系通常用一条带空心箭头的虚线表示,箭头指向接口。

参考资料:

UML类图设计-1小时快速掌握

本文由mdnice多平台发布


HackerPainter
1 声望0 粉丝