UML 类图教程:带有示例的抽象类
UML 图中类是什么?
A UML 中的类 图是用于创建对象或对象集的蓝图。类定义对象可以做什么。它是创建各种对象并在系统中实现其行为的模板。UML 中的类由一个矩形表示,其中包含带有类名、属性和操作的行。
什么是类图?
A 类图 软件工程中的类图是一种静态结构,通过显示类、属性、操作及其相互关系来概述软件系统。此图在单独的指定部分中包含类名、属性和操作。类图有助于构建软件应用程序开发的代码。
类图定义系统中对象的类型以及它们之间存在的不同类型的关系。它提供了应用程序的高级视图。这种建模方法可以与几乎所有面向对象方法一起运行。一个类可以引用另一个类。一个类可以有自己的对象,也可以从其他类继承。
类图的好处
- 类图说明了非常复杂的信息系统的数据模型
- 在研究实际代码之前,它提供了应用程序结构的概述。这可以轻松减少维护时间
- 它有助于更好地理解应用程序的总体原理图。
- 允许绘制详细图表,突出显示需要编程的代码
- 对开发人员和其他利益相关者有帮助。
UML 类图的基本元素
UML 类图的基本元素是:
- 班级名称
- Attributes
- 营运部
班级名称
类的名称仅在类的图形表示中才需要。它出现在最上面的隔间中。类是对象的蓝图,可以共享相同的关系、属性、操作和语义。类呈现为一个矩形,包括其名称、属性和操作,它们位于不同的隔间中。
在表示一个类时必须注意以下规则:
- 类名应该始终以大写字母开头。
- 类名应该始终位于第一个隔间的中心。
- 类名应该始终写成 无所畏惧 格式。
- UML抽象类名应该用斜体格式书写。
Attributes
属性是类的命名属性,用于描述正在建模的对象。在类图中,此组件位于名称部分的正下方。
派生属性是根据其他属性计算得出的。例如,可以根据学生的出生日期轻松计算出学生的年龄。
属性特征
- 这些属性通常与可见性因素一起写出。
- 公共、私有、受保护和包是四种可见性,分别用 +、-、# 或 ~ 符号表示。
- 可见性描述的是类的属性的可访问性。
- 属性必须有一个有意义的名称,以描述它在类中的用途。
关系
主要有三种 UML 中的关系:
- 依赖
- 概论
- 协会
依赖
依赖关系是指两个或多个类之间的关系,其中一个类的更改可能会导致另一个类的更改。但是,它总是会创建较弱的关系。依赖关系表示一个类依赖于另一个类。
在以下 UML 类图示例中,Student 依赖于 College
概括:
泛化有助于将子类与其超类联系起来。子类从其超类继承而来。泛化关系不能用于模拟接口实现。类图允许从多个超类继承。
在这个例子中,Student 类是从 Person 类泛化的。
协会:
这种关系表示类 A 和类 B 之间的静态关系。例如,一名员工为某个组织工作。
以下是一些关联规则:
- 联想大多是动词或动词短语或名词或名词短语。
- 它应该被命名以表明附加在关联路径末尾的类所扮演的角色。
- 反身关联必须具备
在这个例子中,显示的是学生和大学之间的关系,即学习。
多重
多重性是与属性相关的因素。它指定在初始化类时创建多少个属性实例。如果未指定多重性,则默认情况下将一个视为默认多重性。
假设某学院有 100 名学生。该学院可以有多名学生。
聚合
聚合是一种特殊的关联类型,它模拟了聚合体与其部分之间的整体-部分关系。
例如,类 college 由一个或多个 student 组成。在聚合中,所包含的类永远不会完全依赖于容器的生命周期。在这里,即使 student 不可用,college 类仍将保留。
组成:
组合是一种特殊类型的聚合,当一个类是另一个类的一部分时,它表示两个类之间的强所有权。
例如,如果学院由学生班组成。学院可以包含许多学生,但每个学生只属于一个学院。因此,如果学院不运作,所有学生也会被移除。
聚合与组合
聚合 | 组成成分 |
---|---|
聚合表示子类可以独立于其父类而存在的关系。例如:汽车(父类)和汽车(子类)。因此,如果您删除汽车,子汽车仍然存在。 | 组合显示关系,其中子项永远不会独立于父项而存在。例如:房屋(父项)和房间(子项)。房间永远不会分离成房屋。 |
抽象类
它是一个具有操作原型但没有实现的类。也可以有一个抽象类,其中没有声明任何操作。抽象对于识别类中的功能很有用。让我们考虑一个抽象类的例子。假设我们有一个名为 motion 的抽象类,其中声明了一个方法或操作。在抽象类中声明的方法称为 移动 ().
任何对象(例如汽车、动物、机器人等)都可以使用此抽象类方法来改变当前位置。将此抽象类方法与对象一起使用非常有效,因为没有为给定函数提供实现。我们可以以任何方式将其用于多个对象。
在 UML 中,抽象类的表示法与类的表示法相同。类与抽象类之间的唯一区别在于类名严格采用斜体字体书写。
抽象类不能被初始化或实例化。
在上面 抽象类符号,只有一个抽象方法,可供类的多个对象使用。
UML 类图示例
创建类图是一个简单的过程。它不涉及很多技术细节。下面是一个例子:
ATM 系统非常简单,客户只需按下一些按钮即可收到现金。但是,任何 ATM 系统都需要通过多个安全层。这有助于防止欺诈并向银行客户提供现金或需求详细信息。
下面给出一个 UML 类图示例:
还检查: - UML 图:历史、类型、特点、版本、工具
软件开发生命周期中的类图
类图可用于各种软件开发阶段。它有助于从三个不同的角度对类图进行建模。
1.概念视角: 概念图描述的是现实世界中的事物。您应该绘制一个表示所研究领域中的概念的图表。这些概念与类相关,并且始终与语言无关。
2. 规格角度: 规范视角用规范和接口来描述软件抽象或组件。然而,它并不承诺具体的实现。
3.实施角度: 这种类型的类图用于特定语言或应用程序的实现。从实现角度看,用于软件实现。
类图设计的最佳实践
类图是用于软件应用程序开发的最重要的 UML 图。绘制类图时应考虑许多属性。它们代表软件应用程序的各个方面。
这里,绘制类图时应该记住以下几点:
- 类图的名称必须有意义。此外,它应该描述系统的真实方面。
- 需要提前确定各个元素之间的关系。
- 需要明确每个班级的职责。
- 对于每个类,应指定最少数量的属性。因此,不需要的属性很容易使图表变得复杂。
- 每当您需要定义图表的某个方面时,都应包含用户注释。绘图结束时,软件开发团队必须能够理解。
- 最后,在创建最终版本之前,需要在白纸上绘制图表。此外,在准备最终提交之前,还应反复修改。
结语
- UML 是用于指定、设计和可视化软件系统工件的标准语言
- 类是对象的蓝图
- 类图描述系统中对象的类型以及它们之间存在的不同类型的关系
- 它允许分析和设计软件应用程序的静态视图
- 类图是用于软件应用程序开发的最重要的 UML 图
- UML 类图的基本元素是 1)类 2)属性 3)关系
- 类图在研究实际代码之前提供了应用程序结构的概述。它无疑减少了维护时间
- 类图对于映射面向对象的编程语言很有用,例如 Java, C++, 红宝石, Python等等。
还检查: - 初学者的 UML 图教程:免费在线学习 UML