UML入门

C++: 类图基础介绍、类图绘制 类图 阅读详情

举一个简单的例子,来看这样一副图,其中就包括了UML类图中的基本图示法。

 

首先,看动物矩形框,它代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。前面的符号,+ 表示public,- 表示private,# 表示protected。

右下角的飞翔,它表示一个接口图,与类图的区别主要是顶端的<<interface>>显示。第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法。唐老鸭是能讲人话的鸭子,实现了讲人话的接口。

接下来的是类与类,类与接口之间的关系了。首先注意动物、鸟、鸭、唐老鸭之间的关系符号。它们都是继承的关系,继承关系用空心三角形 + 实线来表示的。

       上述所列举的几种鸟中,大雁最能飞,让它实现了飞翔接口。实现接口用空心三角形 + 虚线来表示。

 

       企鹅和气候两个类,企鹅是很特别的鸟,会游不会飞。更重要的是,它与气候有很大的关联。我们不去讨论为什么北极没有企鹅,为什么它们要每年长途跋涉。总之,企鹅需要知道气候的变化,需要了解气候规律。当一个类知道另一个类时,可以用关联(association)。关联关系用实线箭头来表示。

       再来看大雁和雁群这两个类,大雁是群居动物,每只大雁都是属于一个雁群,一个雁群可以有多只大雁。所以它们之间就满足聚合(Aggregation)关系。聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形+ 实线箭头来表示。

       组合(Composition)是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。在这里鸟和其翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。组合关系用实习的菱形 + 实线箭头来表示。另外,你会注意到合成关系的连线两端还有一个数字1和数字2,这被称为基数。表明这一端的类可以有几个实例,很显然,一个鸟应该有两只翅膀。如果一个类可能有无数个实例,则就是n来表示。关系关系、聚合关系也可以有基数的。

       动物的几大特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物依赖于氧气和水。他们之间是依赖关系(Dependency),用虚线箭头来表示。

编程是一门技术,更是一门艺术,不能只满足于写完代码后运行结果正确就完整,时常要考虑如何让代码更加简练,更加容易维护,容易扩展和利用,只有这样才可以真正得到提高。写出优雅的代码真的是一种很爽的事情。UML类图也不是一学就会的,需要有一个慢慢熟练的过程。所谓学无止境,其实这才是理解面向对象的开始呢。


本文转自:http://blog.youkuaiyun.com/monkey_d_meng/article/details/6005764




C++ UML类图 本文详解了UML类图的绘制,UML的一般使用方法 阅读详情

相关推荐

设计模式C++实现40讲:用PlantUML绘制类图

在软件开发中,设计模式是一种解决常见问题的可重用方案。C++是一种强大的编程语言,广泛应用于各种领域。本文将介绍如何使用PlantUML嵌入式语法,通过示例代码展示40种常见设计模式的C++实现,并使用PlantUML绘制相应的类图。抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而无需指定具体类。

CyberBytezZ的博客 605

C++ UML类图详解

类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。类图的3个基本组件:类名、属性、方法。在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation,组合(Composition),依赖(Dependency)

u013921164的博客 4868

34、统一建模语言(UML)入门指南

本文介绍了统一建模语言(UML)的基本概念及其在面向对象设计中的应用。内容涵盖UML的核心图表,包括类图、序列图、协作图、状态图和活动图,以及组件、子系统、包和部署视图的表示方法。通过图文示例,帮助读者理解系统的静态结构与动态行为建模,掌握UML在软件设计中的全面表达能力。

m3n5b7v8c9x的博客 67

【UML类图之C++】

面向对象设计主要就是使用UML的类图,类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。下面基于C++这门语言给大家讲一下UML类图的画法。

qq_49613557的博客 3532

MATLAB配置MinGW编译器的完整指南

本文提供了在Windows系统上为MATLAB配置MinGW编译器的完整指南。详细介绍了通过MATLAB附加功能管理器在线安装和手动离线安装两种核心方法,并重点说明了如何解决常见的“未找到支持的编译器”等错误。指南包含从版本检查、环境变量配置到最终使用mex命令验证的每一步,帮助用户顺利完成MATLAB与MinGW的集成,以支持C/C++代码编译。

weixin_29031057的博客 264

RTAB-map:实时高效的SLAM库

Real‐time appearance‐based mapping (RTAB‐Map)是一种基于外观的闭环检测方法,具有良好的内存管理,以满足处理大场景和在线长周期管理要求。RTAB‐Map集成了视觉和激光雷达SLAM方案,并支持目前绝大多数的传感器 是一个强大的、开源的Simultaneous Localization and Mapping(SLAM)库,专为机器人和无人驾驶领域设计。它提供了一套完整的解决方案,用于构建三维地图,并在未知环境中进行实时定位与导航。 github项目地址 RTAB-

weixin_45761399的博客 1万+

UML统一建模语言快速入门

UML统一建模语言入门 基本介绍 UML(统一建模语言Unified Modeling Language)是一种建模(即把对象实体通过适当的抽象,用适当的表现规则描绘出的简洁的模仿品 ,模型有实体的一般特征及规律)语言,用来为面向对象开发系统的产品进行说明、可视化和编制文档的方法。 UML描述了一个系统的静态结构和动态行为。静态结构定义了系统中的重要对象的属性和操作,以及这些**对象之间的相互关系...

JunsIr的技术栈 1582

基于LangGraph的智能报告生成平台项目分析

不知道你是否知道或者了解OpenAI and Gemini Deep Research。他们是一种能够根据输入问题进行规划、结合网络搜索获取信息并最终呈现结果的研究工具或技术。那这样research是如何实现的呢?最近刚好看到一个实现类似功能的开源项目: open_deep_search。本文将基于该项目进行代码层面剖析。

u011160113的博客 923

统一建模语言UML快速入门

 

ark1111的专栏 2174

JeecgBoot漏洞利用工具解析:一键getshell原理与安全加固实践

在应用安全领域,远程代码执行(RCE)和文件上传漏洞是Web系统面临的高危威胁,其核心原理在于对用户输入的控制不足或安全校验缺失。攻击者通过构造恶意请求,可绕过系统边界,在服务器上执行任意命令或上传恶意文件,从而获取系统控制权。这类漏洞的技术价值在于揭示了应用层安全防护的薄弱环节,其利用方式自动化、集成化趋势明显,极大地提升了攻击效率。在低代码开发平台等快速构建的业务系统中,此类风险尤为突出。应用场景广泛覆盖安全测试、渗透评估与应急响应。本文聚焦于JeecgBoot平台的历史高危漏洞,深入解析其SQL注入、

weixin_30787531的博客 552

HFSS仿真中如何提取最大E/H场强与频率关系曲线

本文详细讲解了在HFSS仿真中提取最大E/H场强与频率关系曲线的完整流程。通过使用场计算器(Field Calculator)和创建场报告,工程师可以准确获得器件在整个频带内的电场或磁场强度峰值,并进一步推导出关键的功率容量曲线,为高功率射频器件(如滤波器、耦合器)的设计提供至关重要的安全评估依据。

ss78901的博客 1098

万字多图 | UML 入门指南

这里写自定义目录标题一、前言二、从一个示例开始三、什么是 UML?3.1 为什么称为语言3.2 什么是建模3.3 统一的意义在哪四、为什么需要 UML五、UML 的适用场景六、UML 的组成结构6.1 核心元素6.1.1 版型6.1.2 参与者6.1.3 用例6.1.4 边界6.1.5 业务实体6.1.6 包6.1.7 分析类6.1.8 设计类6.1.9 关系6.1.10 组件6.1.11 节点6.2 核心视图6.2.1 结构视图6.2.1.1 用例图6.2.1.2 类图6.2.1.3 对象图6.2.1.4

程序员蜗牛 938

最小二乘拟合圆:使用拉格朗日乘子法

在本文中,我们将探讨如何使用拉格朗日乘子法来进行最小二乘拟合,并将其应用于拟合一个空间圆。首先,我们需要定义问题。给定一组二维或三维数据点,我们的目标是找到一个圆,使得这些数据点到圆的距离的平方和最小。为了找到最小值,我们需要计算拉格朗日函数的偏导数,并令其等于零。通过解决优化问题,我们可以找到最佳拟合的圆,以最小化数据点到圆的距离的平方和。其中,(x, y) 是圆心的坐标,r 是圆的半径,(xi, yi) 是数据点的坐标。其中,g(x, y, r) = 0 是约束条件,C 是常数,λ 是拉格朗日乘子。

TechProX的博客 475

统一建模语言UML入门

统一建模语言UML入门收藏  UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。UML适用于以面向对象技术来描述任何类型的系统,而且适用于系

pigzee的专栏 652

第八章 GPU Scheduler 分析:8.3 drm_sched_entity — 调度实体

本文介绍了DRM GPU调度器中的drm_sched_entity结构,它作为用户提交命令进入调度器的提交通道,解决了归属、排序和公平性问题。文章首先分析了命令提交的归属需求,然后详细阐述了entity的核心模型,包括其职责、进程映射关系和核心字段。接着说明了用户态提交进入内核后的关键节点路径,以及entity内部的FIFO语义和激活机制。entity通过组织同一context的命令提交包为FIFO队列,使调度器能够在多个entity之间进行优先级和公平性调度,同时保证同一提交通道的顺序执行。

图形/计算GPU的驱动与虚拟化技术分享园地 651

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

统一建模语言UML轻松入门之综合实例

  统一建模语言UML轻松入门之综合实例 http://dev.21tx.com

ddddrrrr的专栏 1774

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

统一建模语言UML轻松入门之基本概念

        20 世纪80 年代,随着面向对象技术成为研究的热点,先后出现了几十种面向对象的软件开发方法。其中,Booch、OMT 和OOSE等方法得到了广泛的认可。然而,采用不同方法进行建模不利于开发者之间的交流。而UML则统一了Booch、OMT 和OOSE 的表示方法,而且对其作了进一步的发展。1997 年,UML 被国际对象组织OMG采纳为面向对象的建模语言的国际

4018

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

统一建模语言UML轻松入门系列

第五讲:统一建模语言UML轻松入门之综合实例 第四讲:统一建模语言UML轻松入门之动态建模 第三讲:统一建模语言UML轻松入门之静态建模:类和对象 第二讲:统一建模语言UML轻松入门之静态建模:用例 第一讲:统一建模语言UML轻松入门之基本慨念 转载于:https://www.cnblogs.com/smallfa/archive/2010/01/0...

weixin_30602505的博客 85

Java设计模式精讲之UML急速入门

简单记录 - 慕课网 - Java设计模式精讲 Debug方式+内存分析 文章目录第2章 UML急速入门2-1、UML简单入门UML定义UML特点UML 2.2分类UML类图理解泛化、实现理解依赖、关联理解聚合、组合UML时序图2-2、UML类 图讲解2-3、UML类图讲解 自上而下2-4、UML类图讲解 - 对比讲解联想记忆 第2章 UML急速入门 主要讲解UML基础、UML类图、UM...

渐若窥宏大的博客 604

UML快速入门

UML快速入门 :http://www.cnblogs.com/cxd4321/archive/2008/12/09/1351055.html UML学习入门就这一篇文章 http://www.ltesting.net/ceshi/ruanjianceshikaifajishu/rjcskfyy/uml/2012/0104/203860.html

Tony_Wong的专栏 858

统一建模语言UML轻松入门之动态建模

统一建模语言UML轻松入门之动态建模 作者:宋宝华 出处:天极开发

Jack.Xue 程序生涯 1311

统一建模语言UML轻松入门(1)――基本概念

统一建模语言UML轻松入门(1)――基本概念 --------------------------------------------------------------------- 宋宝华 email:21cnbao@21cn.com --------------------------------------------------------------------- 公元前260

wangziqi1991的博客 547
rogerconquer
博客等级 码龄18年 3粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值