UML图可以说是每个编程人员必须知道的知识,关于UML了相关知识可以专门开设课程进行学习,知识体系在软件工程中很重要,特别是设计到专业的团队开发时,这些东西显得尤为重要。我在这里只是介绍UML图中的基础概念,让你可以快速的看懂一张UML图,而不必啃UML的知识体系。

首先我网上找到了一张比较好的图(注:如有侵权请告知,仅此博文用途用,无意冒犯)

一、类图

以图中动物这个类为例,类图分为三层,第一层是类名,如果是抽象类,则会用斜体显示;第二层是类的特性,一般是属性和字段,第三层是类的操作,一般是方法。在特性和操作前的符号,其中,“+”代表public,“-”代表private,“#”代表protected。

二、接口图

接口类共有两种表示方式,第一种如图中的“飞翔”,它与类图的区别主要是顶端有<<interface>>,第一行是接口名,第二行是接口方法,符号含义相同。另一种表示方式如图中的“唐老鸭”的类似棒棒糖的表示方式,即唐老鸭实现了“讲人话”的接口

三、继承关系

继承关系用“空心三角形+实线”表示,即子类属于父类,如鸟属于动物。

四、实现接口

类实现了一个接口的关系用“空心三角形+虚线”表示,即大雁能够飞翔。

五、关联关系

关联关系用实线箭头表示,即一个类需要知道另一个类的时候,就用关联关系,如企鹅需要知道气候,用代码的方式来看,就是企鹅类中使用了气候作为属性,代码表示如下。

class Penguin extends Bird{private Climate climate;
}

六、聚合关系

聚合关系用“空心的菱形+实线箭头”表示,其中聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,如每一个大雁属于一个雁群,一个雁群可以有多只大雁,代码表示如下。

class WideGooseAggregate{private WideGoose[] arrayWideGoose;
}

七、合成(组合)关系

合成(组合)关系用“实心菱形+实线箭头”表示,其中合成是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。即图中鸟与其翅膀是合成关系,因为他们是整体,生命周期一样。另外合成关系的连线两端还有数字“1”和数字“2”,这被称为基数,表明这一端可以有几个实例,如果有无数个实例,就用“n”表示,关联关系、聚合关系也可以有基数,代码表示如下。

class Bird{private Wing wing;public Bird() {wing = new Wing();}
}

八、依赖关系

依赖关系用“虚线箭头”表示,即图中动物需要水、氧气以及食物,代码表示如下。

abstract class Animal{public Metabolism(Oxygen oxygen, Waiter water) {}
}

问题杂谈:教你读懂UML图相关推荐

  1. UML-认识六种箭头,轻松读懂UML图

    进行系统设计时,UML是一种常见的面向对象结构设计方式,里面的各种箭头表示经常会把人弄糊涂,如果不能正确理解,实现阶段就会出大问题,失之毫厘,谬以千里,下面带着大家认识下6种常用箭头. 1. 泛化 概 ...

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

    快速读懂UML类图,搞懂类之间的6大关系,轻松绘制UML类图 前言 一.UML类图简介 二.类之间的六大关系及UML类图 1.依赖关系及UML类图表示 2.泛化关系及UML类图表示 3.实现关系及UM ...

  3. AI:一张高清长图教你读懂AI简史《1308年 → 至今》

    AI:一张高清长图教你读懂AI简史<1308年 → 至今> 素材源自网络收集,仅供学习使用! 目录 一张图教你读懂AI简史-分图 一张图教你读懂AI简史-长图 一张图教你读懂AI简史-分图 ...

  4. 手把手教你读懂源码,View事件的注册和接收详细剖析

    关于Android的Touch事件传递机制,只是知道事件传入Activity后的流程,但是这些事件是如何传递给Activity的一直模糊不清.现在再来好好回顾一遍,顺道整理一点儿东西出来,同时分享给大 ...

  5. 一分钟带你看懂UML图

    一分钟带你看懂UML图 小小demo package Test;/*** @Description:* @ProjectNmae: demo1* @PackageName: Test* @ClassN ...

  6. mysql火焰图_如何读懂火焰图?

    原标题:如何读懂火焰图? 文章作者:阮一峰http://www.ruanyifeng.com/原文链接:http://www.ruanyifeng.com/blog/2017/09/flame-gra ...

  7. 三分钟教你读懂本票是什么

    三分钟教你读懂本票是什么 本票 1.本票定义及特点 本票(Promissory Note)是一项书面的无条件的支付承诺,由一个人作成,并交给另一人,经制票人签名承诺,即期或定期或在可以确定的将来时间, ...

  8. 三分钟教你读懂票据是什么

    三分钟教你读懂票据是什么 票据业务 票据(Cheque):出票人开立的,承诺由付款人到期向持票人支付一定确定金额的承诺. 1.票据的记载事项: 票据记载事项分为A类.绝对记载事项(必填):B类.相对或 ...

  9. 三分钟教你读懂支票是什么

    三分钟教你读懂支票是什么 支票 1.支票的概念及特点 支票:出票人签发的,委托办理支票存款业务的银行或其他金融机构在见票时无条件支付确定金额给收款人或持票人的票据. 支票必填项:支票字样.确定的金额. ...

最新文章

  1. Android官方开发文档Training系列课程中文版:OpenGL绘图之应用投影与相机视图
  2. Cocos2d-精灵的几个常识
  3. Canvas实用库Fabric.js使用手册
  4. linux运维面板_phpstudy linux web面板(小皮面板)V0.2版本正式发布
  5. VScode像Codeblocks一样,不启动调试和Debug直接运行
  6. (转)因巨亏而著名的10大魔鬼交易员
  7. html日历修改,HTML精美日历插件
  8. 安装了Adobe Acrobat却没有pdf虚拟打印机
  9. linux 查看、关闭、后台程序 【进程】
  10. (转)以太坊(Ethereum)全零地址(0x000000...)揭秘
  11. Python 爬虫 目标:千图网VIP高清无水印下载即用
  12. 荣耀4a鸿蒙,赵明:6 月起芯片供应将全面恢复,荣耀未来会考虑用华为鸿蒙系统...
  13. python目标函数最大_python运筹优化(三):遗传算法和Geatpy使用实践
  14. [Algorithmic Toolbox学习笔记][week6]Placing Parentheses
  15. Obsidian 0x01:Obsidian 双链
  16. pip下载包报错ERROR: Could not find a version that satisfies the requirement xxxx==1.0.2 (from versions
  17. 优化了的过关键点的光滑曲线拟合算法
  18. 虹科分享 | 压力蒸汽灭菌器确认之BD测试
  19. 172. 阶乘后的零。
  20. Duplicate Entry

热门文章

  1. 笔记本安装CentOS7.2操作系统
  2. 磁盘被格式化了的文件恢复办法
  3. Bounding box regression RCNN我的理解
  4. 经济增长(二)索洛模型
  5. 影驰gtx960显卡怎么样_影驰gtx960 2g_影驰gtx960 2g跑分
  6. 虚拟机服务器关机命令,linux虚拟机怎么关机命令
  7. 2021/9/4王者荣耀服务器崩掉
  8. minecraft服务器搭建教程_Minecraft我的世界服务端搭建教程,附优化启动参数
  9. 《微信公众平台与小程序开发——从零搭建整套系统》——第1章,第1.2节微信公众平台...
  10. 关于计算机知识的趣事,最全计算机发展史