每一个开发人员都应该懂的 UML 规范

UML规范-类图 依赖表示一个类依赖于另一个类的情况,通常在一个类中使用了另一个类作为参数、返回类型或局部变量等。组合是聚合关系的一种特殊形式,其中一个类包含另一个类的实例,并且两者的生命周期相互依赖。继承表示类之间的父子关系,其中子类(派生类)继承了父类(基类)的属性和方法。聚合表示类之间的整体部分关系,其中一个类包含另一个类的实例。关联表示类之间的连接关系,用于描述类之间的关联关系。在软件设计的过程中,类和类,类和接口,属性和类之前的关系很重要,接下来重点分析一下关系的表达方式。属性是类的特征或状态,用于描述类的特性。 阅读详情

作者:码匠笔记

来源:微信公众号“码匠笔记”

在团队协作过程中最常见的就是开会、开会最常用的就是图,而图中最常见的就是流程图、时序图、类图,这三个图可以清楚的描述你想解释的内容。

学好类图不仅仅能帮助自己更清楚的梳理业务,还能提高开会效率。但是话说回来,你是否真的看懂别人画的图了?或者你真的会画吗?今天就和大家一起学习一下怎么画类图。

640?wx_fmt=png

上图是我模拟出来的一个场景和大家具体说一下类图究竟应该怎么画才对。图中讲的是这样一个「故事」:

一个公司下面有很多部门,公司和部门是不可分割的。

码农属于一个部门,但是如果部门解散了,码农依然依然是码农。

码农无时无刻在用手机,只有工作时间才会使用 Mac。

Mac 是一种电脑,电脑是“可计算处理器”的一种实现。

下面我们就逐一介绍下这些关系。

泛化关系(generalization)

泛化关系为 is-a 的关系;两个对象之间如果可以用 is-a 来表示,就是泛化关系。

640?wx_fmt=png

泛化关系用一条带空心箭头的直接表示。如图为例, Mac 和电脑就是泛化关系,通常在程序里面泛化表现为继承于非抽象类。

实现关系(realization)

640?wx_fmt=png

实现关系用一条带实心箭头的虚线表示。如图为例,电脑和可计算处理器就是实现关系,通常程序里面实现关系表现为继承抽象类。比如我们平时写的 Readable,Printable等接口的实现。

关联关系(association)

640?wx_fmt=png

关联关系通常用一条直线表示,当然如果需要标明方向可以添加箭头。它是描书不同的类对象之间的关系,通常不会随着状态的变化而变化,可以理解为被关联者属于关联者的一部分。如图为例,手机就是码农的一部分,不会因为他上班与否而变化所属关系。通常情况在程序里面以类变量的方式表现。

聚合关系(aggregation)

640?wx_fmt=png

聚合关系用一条带空心菱形箭头的直线表示,如图码农和部门就是聚合关系。与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在。如图为例, 部门撤销了,码农换一个工作还是码农嘛。

组合关系(composition)

640?wx_fmt=png

组合关系用一条带实心菱形箭头直线表示,与聚合关系一样,组合关系同样表示整体由部分构成的关系,不同之处在于整体和部分是强依赖关系,如果整体不存在了,部分也不复存在。如图为例,如果公司倒闭了,那么何来部门呢?

关联、聚合、组合之间的关系

这三者之间的关系有点费解,不过看看这个图应该就明白了

640?wx_fmt=png

依赖关系(dependency)

640?wx_fmt=png

依赖关系是用一套带箭头的虚线表示,他通常描述一个对象在运行期间会用到另一个对象的关系。如图为例码农只有在工作的时候才会用到 Mac 电脑,所以这种依赖关系是依赖于运行状态的。通常情况下是在程序里面通过构造函数、形参等体现。

回顾总结

到这里我们再次回顾一下开篇的图片是不是更加理解里面的连线了?所以我们在绘图过程中一定要非常注意这个线和箭。

640?wx_fmt=png

不过话说回来,死记硬背这些东西确实很难,于是我自己想了一个打油诗,帮助自己来记忆,你也可以来试一下。

实箭泛化虚实现

虚线依赖实关联

空菱聚合实组合

项目沟通图常见

所以你学会了吗?

统一建模语言 (UML) 规范 2级元模型(M2)是UML规范。M2实例化OMG的元对象设施(MOF),这是一个3级元3模型(M3)。可以将类图视为实例化2级元模型的1级元模型(M1)。这自然会导致元元模型(元2模型)、元3模型等的层次结构。可以将对象图视为实例化类图的0级模型(M0)。模型是元模型的一个实例。... 阅读详情

相关推荐

UML术语标准和分类

一、UML术语标准 二、UML2.0分类

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 1092

经典的设计模式——UML类图的一些规范

当一个类“知道”另一个类时,可以用关联关系表示,比如企鹅和气候就是这种关系,企鹅需要知道气候,在企鹅类里边可以定义气候。这个用的也还是比较多的。聚合表示弱拥有关系,体现的是A对象可以包含对象B,但B对象不是A对象的一部分。部分和整体的关系,强拥有关系。用实心菱形+实线来表示。这个一般在客户端实现那里使用,其余的地方没见过有用这个表示的。比如动物依赖于氧气和水的关系就是依赖关系。+号表示公有,-表示私有,#表示保护。我感觉这个依赖关系模模糊糊的。这个也用的稍微多一点点吧。这个用的还是比较多的。

weixin_63967970的博客 1763

游戏安全逆向实战:如何用010Editor绕过ACE反作弊的文件校验(附详细步骤)

本文详细介绍了如何通过逆向工程思维和010Editor工具,针对PC游戏中ACE反作弊系统的文件校验机制进行分析与绕过。文章以实战案例为核心,逐步拆解了定位校验逻辑、解析校验数据文件、计算并替换哈希值的关键步骤,为安全研究人员提供了一种在用户态(Ring 3)层面进行轻量化对抗的思路与方法。

iii12的专栏 739

程序员都该懂的 UML 规范!

作者 | 码匠笔记责编 | 胡巍巍在团队协作过程中最常见的就是开会、开会最常用的就是图,而图中最常见的就是流程图、时序图、类图,这三个图可以清楚的描述你想解释的内容。学好...

优快云资讯 4022

Ansys HFSS 中的同轴电缆仿真

准确模拟它们的行为对于确保 RF 系统的最佳性能至关重要。在本博客中,我们将介绍在 HFSS 中设置同轴电缆仿真并绘制插入损耗、回波损耗和电场分布的过程。将波端口分配给同轴线的两端以激励模型,并定义了从 1 GHz 到 20 GHz 的频率扫描以评估其宽带性能。铜分配给内部导体,铝分配给外部导体。介电区域使用 PTFE 定义,其相对介电常数为 2.1,损耗角正切为 0.00022。仿真完成后,结果用于绘制整个频率范围内的回波损耗和插入损耗。此外,电介质内的电场分布也被绘制和动画化。

jkh920184196的博客 1911

音视频入门:H264、H265概念总结

添加链接描述 什么是H.264与H.265 H.264与H.265都是视频压缩格式,由于视频本身的码流太大,所以需要经过压缩然后再通过网络进行传输。H.264是目前比较主流的压缩算法,像视频会议设备一般都采用这个编码格式。基础的H.264可以支持在1M带宽下传输720P30帧/秒的图像;H.264 HIGH PROFILE支持在512K带宽下传输720P30帧/秒的图像。 H.265是比较新的压缩算法,可以更一步提高压缩比,随着我们现在生活中出现的视频格式越来越大(比如现在基本都是1080P甚至4K的显示器

weixin_40673765的博客 8938

multism中ui和uo应该怎么表示_每一个开发人员都应该懂的 UML 规范

在团队协作过程中最常见的就是开会、开会最常用的就是图,而图中最常见的就是流程图、时序图、类图,这三个图可以清楚的描述你想解释的内容。学好类图不仅仅能帮助自己更清楚的梳理业务,还能提高开会效率。但是话说回来,你是否真的看懂别人画的图了?或者你真的会画吗?今天就和大家一起学习一下怎么画类图。上图是我模拟出来的一个场景和大家具体说一下类图究竟应该怎么画才对。图中讲的是这样一个「故事」:一个公司下面有很多...

weixin_39620273的博客 768

2019年上交电院计算机直博保研经历

本人选报的是上交六月一日在武汉举办的直博选拔,五月三十一日到达酒店,地点在武汉大学旁边(PS:上交是不管住宿、来回车票的,~划重点~包括夏令营),入住后当然是紧张的准备英语面试等等内容了,当天我是排在了下午面试,感觉还很好,上午可以多睡一会,最好能够去踩踩点上午,然后下午面试一定要早去,说是一点开始,但是老师十二点半就开始让学生进去了,有一个同学排在第二个,但是当时叫到他时还不到一点,没到,最后据...

LifeMaker的博客 4898

UML统一建模语言

一、UML概述 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。 软件开发生命周期:做需求 -》 形成文档 -》系统设计 -》开发人员编写代码 -》测试 -》运维... 系统设计 -》 “画图纸” -》 UML -》图形化语言(图标式语言)-》不仅应用于Java -》程序员根据设计开始开发/编码 二、UML建模工

AMOAOMA的博客 3591

TDSQL-单机安装

根据腾讯云官方要求,TDSQL安装至少需要三台机器。本人想要学习TDSQL但是没有足够的机器资源,经过仔细分析研究TDSQL安装过程,尝试发现单台机器也可以成功安装TDSQL,现将本人单台机器安装TDSQL的过程以及安装过程中遇到的问题在此分享。具体安装过程可参考腾讯官方文档,本文仅分享与官方文档不一致的步骤。

u012607648的博客 6812

告别云端推理!用llama.cpp+树莓派5搭建本地AI问答机器人(完整配置流程)

本文详细介绍了如何在树莓派5上利用llama.cpp部署本地AI问答机器人,实现完全离线的智能对话。通过模型量化与格式转换技术,成功将MiniCPM-2B等大模型压缩并运行于资源受限的边缘设备,解决了隐私、延迟和成本问题,为物联网和硬件开发者提供了完整的配置流程与实践指南。

t1u2v的博客 509

UML统一建模语言学习笔记

UML概念: 什么是 UML? UML是 OMG 在1997年1月提出了创建由对象管理组和 UML1.0 规范草案; UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言; UML 作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现; UML 是不同于其他常见的编程语言,如C + +,Java中,COBOL等,它是一种绘画...

持剑天涯的博客 763

使用安卓的IMU数据进行 行人航位推算(PDR)推算步长 附python 代码

加速度计数据、陀螺仪数据、重力传感器数据、姿态仰角数据。数据分析与定位轨迹生成主要使用Python离线完成。示意图。

三维点云技术探索 1916

【MERMAID】UML 统一建模语言 —— 类图(Diagram)

  愿你如阳光,明媚不忧伤。 目録1. UML 概述2. 类成员的可见性及返回值类型3. 类图关系4. 关系的基数 / 多重性5. 类注释5. 完整示例   1. UML 概述 UML (Unified Modeling Language)统一建模语言,是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言,独立于任何具体程序设计语言。UML立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述和反映,可以从不同角度描述人们所观

おうせき碩の博客 844

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

UML——概述(什么是UML?UML有什么作用?面向对象技术)

目录 什么是UML? UML能帮我们做什么? 什么是建模? 为什么要建模? 为什么要可视化建模? 建模的原理(原则) 什么是UML? (Unified Modeling Language)统一建模语言,用来设计软件蓝图的可视化建模语言 UML能帮我们做什么? 什么是建模? 我们要先理解模型,模型就是对现实的简化,把复杂系统变成小的系统,采用“逐个击破”的原则逐一解决。 比如说我现在要建一座大厦,不可能一股脑的就把所有的...

一起加油吧~ 8893

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 华为面试改革,你怎么看?
下一篇: 可怜的Java EE,这次会不会劫数难逃?
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值