史上最经典的UML类图各种关系梳理

Python自动绘制UML类图、函数调用图(Call Graph) 借助graphviz+pyreverse,自动提取python代码的UML类图。 借助graphviz+pycallgraph,自动提取python代码的动态调用流程图。 阅读详情

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

一、 泛化(Generalization)

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

【箭头指向】:带三角箭头的实线,箭头指向父类。


二、实现(Realization)
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。
【箭头指向】:带三角箭头的虚线,箭头指向接口。


三、 关联(Association)
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量。
【箭头及指向】:带普通箭头的实心线,指向被拥有者。


        上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 
        下图为自身关联:


四、聚合(Aggregation)
【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
        聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量。
【箭头及指向】:带空心菱形的实心线,菱形指向整体。


五、组合(Composition)
【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
        组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
【代码体现】:成员变量。
【箭头及指向】:带实心菱形的实线,菱形指向整体。


六、依赖(Dependency)
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。
【代码表现】:局部变量、方法的参数或者对静态方法的调用。
【箭头及指向】:带箭头的虚线,指向被使用者。


七、混搭

        各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖


本文引自:http://blog.youkuaiyun.com/tianhai110/article/details/6339565

UML经典资料(包含各个图的实例) UML经典资料(包含各个图的实例) 课件PPT 实例 立即下载

相关推荐

UML经典教程。各种类图画法一目了然。

UML经典教程。各种类图画法一目了然。手把手教你uml。浅显易懂。一学就会

UML14种图

UML是Unified Modeling Language的缩写,译为统一建模语言。UML是软件行业的建模规范,可以对软件项目建立需求模型、设计模型、实现模型、测试模型。

u011385940的专栏 1万+

实验手册(灾难恢复)

我们发现DC1与DC2的复制出现问题,此时我们检查了在DC2中,DC1是否被正确注册。这里选择还原系统状态,因为我们原DC1上只备份了AD的数据,所以我们在新的这台服务器上还原的也是AD数据库。因为我们是单域下的测试,只测试了一个域,所以它会出现这样的报错。我们选择远程共享文件夹,我们备份的时候,是在备份这台服务器上的。同时删除SRV记录,A记录,NS记录,SOA记录,框框里面的所有有关dc1的记录全部删除。如果在企业中AD数据的备份是每周或者每月都会有一次备份,选择恢复AD数据库的时间。

weixin_52364868的博客 1309

掌握14种UML图,清晰图示

UML是的缩写,中文是统一建模语言,是由一整套图表组成的标准化建模语言。【概念】类图是一切面向对象方法的核心建模工具,类图描述了系统中对象的类型和它们之间存在的各种静态关系。【目的】用来表示类、接口以及它们之间的静态结构和关系。在类图中表示私有属性,表示受保护属性,表示public属性。在类图中,常见的有以下几种关系。【概念】描绘了系统中组件提供的、需要的接口、端口等,以及它们之间的关系。【目的】用来展示各个组件之间的依赖关系。订单系统组件依赖于客户资源库和库存系统组件。

qq_39093474的博客 3930

大麦网回流票监控实战:如何利用sign参数和cookie实现自动抢票(避坑指南)

本文详细介绍了如何利用sign参数和cookie构建大麦网回流票监控系统,实现自动化抢票。通过分析大麦网票务系统的核心机制、获取关键身份凭证、逆向分析sign签名算法,并构建完整的监控系统,帮助用户高效捕捉回流票机会。文章还提供了实战避坑指南和合法合规的注意事项,确保系统稳定运行且符合平台规则。

weixin_28568819的博客 411

USB2.0基础知识总结

目录 1、协议层: 1.1、域分类 1.2 、USB传输方式: 1、协议层: 域和包定义:包是一次传输的单位,每个包由多个域组成; USB中是按照LSB进行字节传输; 1.1、域分类 1.1.1: 同步域(SYNC field) 所有的包都开始于同步域,在低速和全速通信中SYNC field用7个0和1个1来表示。 由于USB2.0使用了NRZI编码(0用翻转来表示,1用不翻转表示),所以00000001就是上图那样。 ...

qq_32938605的博客 4408

23种经典设计模式UML类图汇总

23种经典设计模式UML类图汇总

arhaiyun的专栏 3017

时序数据库避坑指南:TDengine与IoTDB在车联网场景的7个关键对比

本文对比了时序数据库TDengine与IoTDB在车联网场景下的7个关键差异,包括数据模型设计、边缘-云端协同能力、车规级函数库、存储压缩算法等。通过真实案例和性能测试,帮助企业在新能源汽车大数据处理中选择合适的时序数据库,优化存储成本和实时告警性能。

rust6ferris的博客 452

通过一份经典的UML类图来学会如何读懂UML类图

继承关系: —▷(实线 + 空心三角形) 鸟 —▷ 动物;鸟继承动物 实现接口: •••▷ (虚线 + 空心三角形)大雁 •••▷ 飞翔;大雁实现了飞翔接口 实现接口: —○ (棒棒糖表示法) 唐老鸭 —○ 讲人话;唐老鸭实现讲人话接口 关联关系: —> (实线剪头 ) 企鹅 —> 气候;企鹅需要‘知道’气候的变化 依赖关系: •••>

weixin_44049823的博客 635

Modbus 通信协议详解

Modbus是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给 IDA(,分布式自动化接口)组织,并成立了 Modbus-IDA 组织。

Projectsauron 的博客 7万+

C语言 在合并编译 ( 多.c文件 ) 情况下 实现 linked list ( 链表 ) 教程 . 更新ing

写在前面  依旧是参考借鉴了 浙江大学 温老师 的视频教程,很不错,在中国大学MOOC上,强力推荐!  虽说有借鉴,但是能保证的是每一行代码都是我自己经过理解后手敲出来的,所以才来做了这部分的教程。  最后,带 * 字符是我个人觉得可以添加的功能,按理来讲是可以不看的,而且大概率是可以有更好的改进的。  PS: 文章还在更新,如果文字蓝了(有超链接),说明写完了,如果没蓝,说明我在开军舰.jpg 源代码:  这里→源代码. 第一步:前置工作  先说一下每一篇都会出现 main 函数的,stage1 只是给没

weixin_47287635的博客 525

类图及类图中的关系

1.类图和对象图   类图(Class Diagram)是显示出类、接口以及他们之间的静态结构与关系的图。其中最基本的单元是类或接口。 类图不但可以表示类(或者接口)之间的关系,也可以表示对象之间的关系。下面是一个典型的类图: 类图一般分为几个部分:类名、属性、方法。下面分别讲解。 (1)类名 上面的Car就是类名,如果类名是正体字,则说明该类是一个具体的类,如果类名是斜体字,则说明

Carter的菜园子 1840

数据分享:中国历年省、市、县行政区划shp(1949~2023年共计75年)

中华人民共和国县级以上行政区沿革》(三册,1949-1983年)“The Atlas of Changes of Administrative Regions of China”;《中华人民共和国行政区划沿革地图集》The yearly publications of “The Administrative Regions”, 1985-2014;每年的出版行政区划简册(1985-2014年)行政区划网:www.xzqh.org。行政区划网:www.xzqh.org。

J_Giser的博客 3687

快速读懂UML类图,搞懂类之间的6大关系,轻松绘制UML类图

本文详细讲解和梳理UML类图,并介绍通过为IDEA安装PlantUML Intergration插件实现UML类图的绘制,为后续设计模式的讲解做铺垫。本文所有代码都是以JAVA语言为例

Mekeater的博客 2万+

基于Python的网贷平台数据爬虫实战:Scrapy+Selenium+反反爬策略

python复制下载# items.py本文详细介绍了如何使用Python构建一个完整的网贷平台数据爬虫系统,涵盖了从基础爬取到高级反反爬策略的全套解决方案。我们使用了Scrapy框架作为基础,结合Selenium处理动态内容,实现了多种反反爬策略,并探讨了分布式爬虫的实现方式。机器学习识别验证码基于深度学习的网页结构变化检测自动化行为模拟的更精细控制基于Kubernetes的弹性爬虫集群。

2201_76125261的博客 1560

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

UML详解(1):类的关系与如何绘制类图

作为一个程序员,我们经常会使用UML来绘制各种图,类图就是其中常用之一。对于初学者来讲,如何读懂类图可能是一件有些困惑的事情,这里通过逐步梳理,帮助你详细了解类的关系,以及以后如何绘制类图。 1.0 定义 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。 ...

凯文叔叔的博客 12万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【软件工程】一篇入门UML建模图(类图)

来理一理我们前面走过的【软件工程】学习之旅,来帮助大家更好的搞清楚软件工程学习思路。软件工程是什么首先定义软件工程的概念,解释其重要性和目标。要通过系统化(系统定界方法)、工程化方法(引入软件开发过程)来解决软件工程问题说明软件工程面临的挑战,并引入系统化和工程化方法作为解决方案。因为软件工程的定义以及其目标和重要性,要求我们必须要引入工程化(分步骤、有序)、系统化(系统定界法///活动、实体、边界三要素)方法来处理软件工程问题软件开发过程模型在工程化的要求下,有序、有步骤来进行软件工程开发。

十二月的猫 6744

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

UML类图以及常见类关系图解

最近查询了类图中的常见关系,网上有不少或详细或简略的解释,大部分都是一张图被来来回回的复制粘贴,我借这个文档重新梳理一下概念和类关系。 文章目录基本概念类关系泛化 Generalization实现 Realization依赖 Dependency关联 Association聚合 Aggregation组合 Composition一图汇总参考 基本概念 类图(Class Diagram): 类图是面...

特仑苏专栏 6892

大话UML类图,轻松理解,小白也能绘制

一个合格的程序员,要想成长为一个高级工程师,不仅仅需要大量代码的编写,更需要对设计模式具有深入的了解和灵活的应用学习设计模式必不可少的一项能力就是能读懂UML类图,能够将自己的设计思路绘制成UML类图便于相互交流,其实稍有经验的程序员应该对UML类图都不陌生,因为我们平常会使用很多二次开发包,一般二次开发包都会提供一份包含本开发包的所有类相关的UML类图,通过UML类图可以让程序员快速的了解开发包中各个类的功能以及各个类之间的关系。

weixin_43977307的博客 1313

2. UML图之类图

统一建模语言(Unified Modeling Language,简称 UML),是一种专门用于软件设计的可视化建模语言。其显著特点在于简洁性、通用性、图形化表达,能够精准呈现软件设计过程中的动态与静态信息,为软件开发人员提供了一套直观、高效的沟通与设计工具。UML 从多个维度对目标系统进行剖析,一共定义了九种不同类型的图,分别是例图、类图、对象图、状态图、活动图、时序图、协作用例图:从用户角度出发,展示系统的功能需求以及用户与系统之间的交互关系,明确系统的边界和功能范围。类图。

qq_68538526的博客 2831

[ UML统一建模语言 ] ER图、时序图、类图等

等都是**UML(统一建模语言)**或数据库设计中的核心工具,用于从不同维度描述系统架构和行为。它们是沟通需求、设计和实现的“桥梁”,在实际开发中被广泛使用。建议:根据项目规模和团队需求,灵活选择合适的图,并保持与代码的同步更新。:现代敏捷开发中,不追求“完美的图”,而是强调“够用的图”。这些图不是“纸上谈兵”,而是软件开发的。的静态图,是面向对象设计的核心工具。的图形化工具,主要用于数据库设计。的动态图,强调时间顺序。

2401_88846919的博客 1548

UML:简述类图中的各种关系

UML:简述类图中的各种关系       在团队协作过程中必须要掌握UML(统一建模语言)中的各种图,而图中最常见的就是流程图、时序图、类图,这三个图可以清楚的描述我们想解释的内容。学好类图不仅仅能帮助自己更清楚的梳理业务,还能提高开会效率。今天就和大家一起学习一下怎么画类图。     &nbs...

王小二(海阔天空) 2516

UML类图以及各种类之间的关系

每次在阅读或者画UML 图的时候,总是对各种类之间的关系区分的不是很清楚,最近在看《大话设计模式》,开篇的介绍非常详细易懂,赶紧整理一下,便于自己记忆。 1. 继承关系 继承关系表示一个类派生自另外一个类,用来实现多态。使用实线的空心三角形表示。下图所示表示 Bird 类 继承 Animal 类。 2. 接口实现 接口实现类似于继承,使用虚线的空心三角形箭头表示

Fire_Lord的专栏 3314

UML类图_六大关系_Idea插件绘制

学习设计模式必不可少的一项能力就是能读懂UML类图,能够将自己的设计思路绘制成UML类图便于相互交流,其实稍有经验的程序员应该对UML类图都不陌生,因为我们平常会使用很多二次开发包,一般二次开发包都会提供一份包含本开发包的所有类相关的UML类图,通过UML类图可以让程序员快速的了解开发包中各个类的功能以及各个类之间的关系。

皮球 1238

java uml类图举例_UML类图介绍

UML类图非常简单,可以用下面的图表示一个类:该图表示一个叫做Person的类,该类有name、age、sex三个private属性,每个属性的类型紧跟在冒号的后面。该类有walk和speak两个方法,其中walk方法是public的,而speak方法是protected的,两个方法的返回值类型紧跟在冒号的后面。如果要表示一个接口,则用下面的图表示:下面介绍类与类之间的关系。如果按照关系的紧密程度...

weixin_34277895的博客 2454
上一篇: GoF23种设计模式之创建型模式之建造者模式
下一篇: GoF23种设计模式之创建型模式之单态模式
innovation
博客等级 码龄14年 251粉丝 136原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值