Ari的小跟班

  :: :: 博问 :: 闪存 :: :: :: :: 管理 ::
  65 随笔 :: 1 文章 :: 1 评论 :: 15044 阅读

转自简书,在简书UML类图 - 简书 (jianshu.com)该篇文章的基础上转写成markdown形式,感谢原发布者和简书平台!

 

# UML是什么?

1.定义:

​ 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具独立于任何具体程序设计语言

2.作用:

  • 为软件系统建立可视化模型。UML符号具有良好的语义,不会引起歧义;基于UML的可视化模型,使系统结构直观易于理解;使用UML进行软件系统的模型不但有利于系统开发人员和系统用户的交流,还有利于系统维护。模型是系统的蓝图,它可以对开发人员的规划进行补充,模型可以帮助开发人员规划要建的系统。

  • 为软件系统建立构件。UML不是面向对象的编程语言,但它的模型可以直接对应到各种各样的编程语言。

  • 为软件系统建立文档。UML可以为系统的体系结构及其所有细节建立文档。不同的UML模型图可以作为项目不同阶段的软件开发文档。

UML类图介绍

基础属性

可以看以下图例

5336514-d05e8edc42eb1469.png

​ 图中表示一个类,上半部分表示的是类中的成员变量,变量名前面的特殊符号表示该成员变量的类型(私有或者公有等),对方法也是同理。成员变量:后表示该成员变量的类型。具体符号表示的意思如下图所示:

+表示public
-表示private
#表示protected
~表示default,也就是包权限
_下划线表示static
斜体表示抽象

类与类的关系

​ 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 。

5336514-985132f6977c5d33.png

泛化

  • 介绍:泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。

继承

1.介绍:继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。

2.表示方法:继承使用空心三角形+实线表示

3.示例:

鸟类继承抽象的动物

5336514-dc3ac9dd64968b59.png

实现

1.介绍:实现表示一个class类实现interface接口(可以是多个)的功能。

2.表示方法:

​ (1)矩形表示法:使用空心三角形+虚线表示。

​ 示例:大雁要飞行就要实现飞()接口

5336514-2941b3300988ffe9.png

​ (2)棒棒糖表示法(因为表示起来是一条线加一个圆圈,所以看上去像一个棒棒糖)

​ 示例:使用实现表示实现讲人话()的接口

5336514-ad59831e8065522a.png

依赖

1.介绍:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。即只要在类用到了对方,那么他们就存在依赖关系。

2.表示方法:依赖关系用虚线箭头表示。

3.示例:动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数

5336514-823083d2d77916ae.png

关联

1.介绍:对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联关系是依赖关系的特例。

2.关联关系用实线箭头表示。

3.示例:

(1)企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。

5336514-0b5f0d7612a7ca17.png

(2)每个人都有一个身份证。

QQ20211231114040.jpg

聚合

1.介绍:表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期

2.表示方法:聚合关系用空心的菱形+实线箭头表示。

3.示例:每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。

5336514-e63191f4e23f2ad9.png

  • 在代码层面,大燕群里有大雁这个成员对象,但是声明的时候并不初始化这个成员变量,即不new 大雁,这样就是聚合。

组合

1.介绍:组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样

2.表示方法:组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。

3.示例:组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。

5336514-dfb604bd1c4408d5.png

  • 在代码层面,鸟这个类里面必须要有翅膀,并且翅膀作为鸟的成员对象时,必须在声明的时候就需要new出来。
posted on   Ari的小跟班  阅读(79)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示