当前位置:首页 > 科技  > 软件

UML 类图真的很重要,十分钟带你掌握!

来源: 责编: 时间:2024-07-23 07:22:16 210观看
导读在日常开发中,我们经常会通过 UML 图形化的方式,帮助开发人员和业务分析师进行需求分析、系统设计和文档编制,这篇文章,我们将来重点分析 UML 类图。什么是UML?UML,Unified Modeling Language 统一建模语言,它是可视化软件系

在日常开发中,我们经常会通过 UML 图形化的方式,帮助开发人员和业务分析师进行需求分析、系统设计和文档编制,这篇文章,我们将来重点分析 UML 类图。U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

什么是UML?

UML,Unified Modeling Language 统一建模语言,它是可视化软件系统设计的标准方法,UML 是一种经典的建模语言,包含了系统论、工程思想,以及架构学的元素。U2t28资讯网——每日最新资讯28at.com

UML 包含多种图表,用于表示系统的不同方面,以下是主要的 UML 图表类型:U2t28资讯网——每日最新资讯28at.com

  • 用例图(Use Case Diagram):描述系统功能及其与外部实体(如用户或其他系统)的交互。
  • 类图(Class Diagram):描述系统的静态结构,包括类、属性、方法及类之间的关系。
  • 对象图(Object Diagram):展示特定时刻系统中对象的实例及其关系,通常是类图的实例化。
  • 顺序图(Sequence Diagram):显示对象之间按时间顺序进行的交互,强调消息的发送和接收。
  • 通信图(Communication Diagram):又称协作图,展示对象之间的交互,强调对象之间的连接和消息流。
  • 状态图(State Diagram):描述对象在其生命周期中所经历的状态变化及状态之间的转移。
  • 活动图(Activity Diagram):描述系统中的活动流程,强调并行和分支控制流。
  • 组件图(Component Diagram):描述系统的物理组件及其相互关系,通常用于显示代码结构。
  • 部署图(Deployment Diagram):描述系统的物理部署架构,包括硬件节点及其之间的通信关系。
  • 包图(Package Diagram):组织类和其他模型元素,展示系统的包及其依赖关系。
  • 定时图(Timing Diagram):描述对象状态或条件随时间变化的图表,常用于实时系统建模。

什么是 UML 类图?

UML Class Diagram(UML 类图),它是 UML 中使用最广泛的一种,提供了面向对象系统的静态视图,展示了它的类、属性、方法以及对象之间的关系。U2t28资讯网——每日最新资讯28at.com

在本文中,我们将探讨 UML 类图的构建块、如何表示它们、不同类型的类关系,并为每种表示形式提供真实世界的示例。U2t28资讯网——每日最新资讯28at.com

UML 类图的组成

UML 类图由以下构建基块组成:U2t28资讯网——每日最新资讯28at.com

  • Class(类)
  • Attributes(属性)
  • Methods(方法)
  • Interfaces(接口)
  • Abstract Class(抽象类)
  • Enumeration(枚举)

1.Class

类是定义对象的属性和行为的蓝图或模板。U2t28资讯网——每日最新资讯28at.com

如下示例,有一个 BankAccount 类以及用 UML 类图表示方式:U2t28资讯网——每日最新资讯28at.com

public class BankAccount {    private String accountNumber;    protected double balance;        public void deposit(double amount) {        this.balance = amount;    }    public void withdraw(double amount) {        balance += amount;    }    private void updateBalance(double amount) {        balance += amount;    }    String getAccountInfo() {        return accountNumber;    }}

U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

类表示为矩形,分为三个区间:U2t28资讯网——每日最新资讯28at.com

  • 顶部:表示类的名称,类的唯一标识符(例如,BankAccount);
  • 中间:表示与类关联的属性或数据(例如,accountNumber、balance);
  • 底部:表示类对象可以执行的方法(例如,deposit()、updateBalance());

可见性标记:可见性标记指示类中属性和方法的可访问权限,可见性通常有以下 4种:U2t28资讯网——每日最新资讯28at.com

  • + (Public):可以从任何类访问属性或方法。
  • - (Private):属性或方法只能在同一类中访问。
  • # (Protected):属性或方法在同一类及其子类中是可访问的。
  • ~(Package):属性或方法在同一包中是可访问的。

2.Attributes

UML 类图中的属性表示类的属性或数据字段。U2t28资讯网——每日最新资讯28at.com

属性的定义通常为下面的形式:U2t28资讯网——每日最新资讯28at.com

- username : String
  • -:代表属性的访问权限。
  • username:代表属性的名称。
  • String:代表属性的数据类型。

如下示例,有一个 Person类,以及用 UML 类图表示方式:U2t28资讯网——每日最新资讯28at.com

public class Person {    private String name;    protected int age;    public String email;    String phoneNumber = "187xxxx1234";}

U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

2.Methods

UML 类图中的方法(或操作)表示类可以执行的功能或行为。U2t28资讯网——每日最新资讯28at.com

属性的定义通常为下面的形式:U2t28资讯网——每日最新资讯28at.com

+ sum(int a, int b): int
  • +,代表属性的访问权限;
  • sum:代表方法的名称;
  • (int a, int b),代表参数列表,以逗号分隔的参数列表,每个参数都指定为名称和类型;
  • int,代表方法返回的数据类型。

如下示例,展示一个 Person类中 4种访问权限的方法:U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

3.Interfaces

接口被描述为一个类矩形,接口名称上方带有关键字 «interface»,接口中的方法大部分上是抽象的,但是也有一些 default 方法。U2t28资讯网——每日最新资讯28at.com

如下示例,定义了一个 Drawable 接口,以及用 UML 类图表示的方式:U2t28资讯网——每日最新资讯28at.com

public interface Drawable {    public void draw();    private void erase(){ }}

U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

4.Abstract Class

抽象类是无法实例化的类,在 UML 中的抽象类用斜体表示类名,在类名上方用关键字 《abstract》表示。类中的抽象方法通常也以斜体显示。U2t28资讯网——每日最新资讯28at.com

如下示例,定义了一个 Shape 抽象类,以及用 UML 类图表示的方式:U2t28资讯网——每日最新资讯28at.com

public abstract class Shape {    public double area;    public abstract double getArea();}

U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

5.Enumeration

枚举是一种数据类型,用于定义一组命名值(例如,颜色、星期、月份等)。在 UML 类图中,在枚举名称上方用关键字 «enumeration» 表示,枚举的值列在类框中。U2t28资讯网——每日最新资讯28at.com

如下示例,定义了一个 Color 枚举,以及用 UML 类图表示的方式:U2t28资讯网——每日最新资讯28at.com

public enum Color {    RED, GREEN, BLUE}

U2t28资讯网——每日最新资讯28at.com

UML 类图中的关系

在 UML 类图中,类之间的关系主要有以下 6种类型:U2t28资讯网——每日最新资讯28at.com

  • Association(关联)
  • Aggregation(聚合)
  • Composition(组合)
  • Inheritance(继承)
  • Implementation(实现)
  • Dependency(依赖)

这六种关系的箭头如下所示:U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

1.Association

Association(关联),表示两个类之间的 uses-a 关系,其中一个类使用另一个类或与另一个类交互。U2t28资讯网——每日最新资讯28at.com

如下示例:学生班级与课程班级相关联,因为学生可以注册多个课程。U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

2.Aggregation

Aggregation(聚合),表示 has-a关系, 一个类(整体)包含另一个类(部分),但包含的类可以独立存在。U2t28资讯网——每日最新资讯28at.com

如下示例:Car 类具有 Engine 类,但 Engine 类可以在没有 Car 类的情况下存在。U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

3.Composition

Composition(组成),代表了一种强烈的 has-a  关系,在这种关系中,没有整体,部分就无法存在。如果整体被破坏,部分也被破坏。U2t28资讯网——每日最新资讯28at.com

如下示例:House 类由 Room 类组成,但 Room 类不能没有 House 类而存在。U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

4.Inheritance

Inheritance(继承或泛化),表示一种 is-a 关系,其中一个类(子类)继承另一个类(超类)的属性和方法。U2t28资讯网——每日最新资讯28at.com

如下示例:Dog 类和 Cat 类继承自 Animal 类,因为狗和猫都是动物。U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

5.Implementation

Implementation(实现),表示类和接口之间的关系,其中类实现接口中声明的方法。U2t28资讯网——每日最新资讯28at.com

示例:Rectangle 类和 Circle 类实现了 Shape 接口,该接口声明了 getArea() 方法。U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

6.Dependency

Dependency(依赖),代表一种 uses 关系,其中一个类别的变化可能会影响另一个类别。U2t28资讯网——每日最新资讯28at.com

如下示例:Customer 类使用 Order 类下订单。U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

最后,我们再对上面几种关系给出一个全面的示例:U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

U2t28资讯网——每日最新资讯28at.com

总结

UML 类图是软件工作中很重要的一个知识点,作为程序员,我们一定要掌握,最后对 UML 类图做个总结:U2t28资讯网——每日最新资讯28at.com

UML 类图由以下构建基块组成:U2t28资讯网——每日最新资讯28at.com

  • Class(类)
  • Attributes(属性)
  • Methods(方法)
  • Interfaces(接口)
  • Abstract Class(抽象类)
  • Enumeration(枚举)

类之间的关系主要有以下 6种类型:U2t28资讯网——每日最新资讯28at.com

  • Association(关联)
  • Aggregation(聚合)
  • Composition(组合)
  • Inheritance(继承)
  • Implementation(实现)
  • Dependency(依赖)

本文链接:http://www.28at.com/showinfo-26-102913-0.htmlUML 类图真的很重要,十分钟带你掌握!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 设计支持千万级别的短链服务

下一篇: 使用回调函数训练YOLO模型

标签:
  • 热门焦点
  • 一加Ace2 Pro真机揭晓 钛空灰配色质感拉满

    终于,在经过了几波预热之后,一加Ace2 Pro的外观真机图在网上出现了。还是博主数码闲聊站曝光的,这次的外观设计还是延续了一加11的方案,只是细节上有了调整,例如新加入了钛空灰
  • 把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 新电商三兄弟,“抖快红”成团!

    来源:价值研究所作 者:Hernanderz 随着内容电商的概念兴起,抖音、快手、小红书组成的“新电商三兄弟”成为业内一股不可忽视的势力,给阿里、京东、拼多多带去了巨大压
  • 重估百度丨大模型,能撑起百度的“今天”吗?

    自象限原创 作者|程心 罗辑2023年之前,对于自己的“今天”,百度也很迷茫。“新业务到 2022 年底还是 0,希望 2023 年出来一个 1。”这是2022年底,李彦宏
  • 华为Mate 60保护壳曝光:硕大后置相机模组 凸起程度有惊喜

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • OPPO K11采用全方位护眼屏:三大护眼能力减轻视觉疲劳

    日前OPPO官方宣布,全新的OPPO K11将于7月25日正式发布,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼IMX890主摄,堪称是2000档位影像表
  • “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主“七王”在群里介绍一些刷单赚
  • 利用职权私自解除被封帐号 Meta开除20多名员工

    11月18日消息,据外媒援引知情人士表示,过去一年时间内,Facebook母公司Meta解雇或处罚了20多名员工以及合同工,指控这些人通过内部系统以不当方式重置用户帐号,其
Top