【Java】Java绘制UML图
1.继承关系(Inheritance)
继承指的是一个类(子类、子接口)继承另外的一个类(父类、父接口)的功能,通过关键字 extends 明确标识
UML图
继承用一条带空心三角箭头的实线表示,从子类(子接口)指向父类(父接口)
2.实现关系(Realization/Implementation)
实现指的是一个 class 类实现 interface 接口(可以是多个)的功能,通过关键字 implements 明确标识
public interface ProgrammingLanguage {}class Java implements ProgrammingLanguage {}class Python implements ProgrammingLanguage {}
UML图
实现用一条带空心三角箭头的虚线表示
3.关联关系(Association)
表示不同类对象之间有关联,这是一种静态关系,与运行过程的状态无关,在最开始就可以确定。可以用 1 对 1、多对 1、多对多这种关联关系来表示。
public class School {List<Student> studentList;
}class Student {}
UML图
在关联的两端可以标注关联双方的角色和多重性标记。
4.依赖关系(Dependency)
和关联关系不同的是,依赖关系是在运行过程中起作用的。
A 类和 B 类是依赖关系主要有三种形式:
A 类是 B 类中某方法的局部变量;
A 类是 B 类方法当中的一个参数;
A 类向 B 类发送消息,从而影响 B 类发生变化;
public class Bank {public static volatile BigDecimal allAccountBalance = new BigDecimal("1000000000");public static void setAllAccountBalance(BigDecimal allAccountBalance) {Bank.allAccountBalance = allAccountBalance;}
}class BankCard {void deposit(BigDecimal money){Bank.setAllAccountBalance(Bank.allAccountBalance.add(money));}void cashWithdrawal(BigDecimal money){Bank.setAllAccountBalance(Bank.allAccountBalance.subtract(money));}
}
UML图
依赖关系用由类 A 指向类 B 的带箭头虚线表示:
5.聚合关系(Aggregation)
聚合是关联关系的一种特例,它体现的是整体与部分的关系,即 has-a 的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。例如电脑和鼠标键盘的关系,电脑作为整体,而鼠标键盘作为电脑的非必要组成部分,两者生命周期互不干扰。
public class Computer {}class Mouse {}class Keyboard {}
UML图
聚合关系以实线空心菱形表示
6.组合关系(Composition)
和聚合不同,组合中整体和部分是强依赖的,整体不存在了部分也不存在了。比如公司和部门,公司没了部门就不存在了。但是公司和员工之间属于聚合关系,因为公司没了员工还在。
public class Company {}class DepartmentA {}
class DepartmentB {}
class DepartmentC {}
UML图
组合关系用实心菱形表示
【Java】Java绘制UML图相关推荐
- Java集合类学习UML图——ArrayList
Java集合类学习UML图--ArrayList ArrayList类的定义 public class ArrayList<E> extends AbstractList<E> ...
- MarkdownPad安装以及绘制 UML 图
要在本地编辑和查看markdown 文件,我选择了安装MarkdownPad 2. 从官网下载了MarkdownPad 2,安装后打开md文件,出现了This view has crashed的渲染错 ...
- eclipse使用ModelGoon插件自动生成java类的UML图
1.ModelGoon介绍 ModelGoon 是一个 Eclipse插件,能将Eclipse中现有的java类生成类图,可以进行Java 包的依赖分析,基于UML图进行模型设计,以及逆向工程(即从已 ...
- Markdown绘制UML图
下面介绍一种可以在Markdown中使用的绘制UML工具 -- PlantUML,以及渲染引擎 Gravizo 1. PlantUML简介 可以登陆 PlantUML官网 看一下,里面有支持的UML类 ...
- 安卓手机绘制uml图_UML图是用什么软件画的?
用例图是一类用于表现某系统的功能需求的图表.用例图是从用户的角度去呈现系统功能,并且明确各系统功能的操作着.绘制用例图经常会用到用例与执行者两种元素.用例位于某系统功能的范围内,用例的执行者则在方框外 ...
- 在VS Code上使用draw.io绘制UML图、架构图、原型图、网络拓扑图、组织结构图等,PeocessOn再见
简介 流程图和UML图估计是程序员偶尔需要的东西,又是话画一个流程图可以理清程序逻辑,之前用windows自带的画图来画流程图,对齐和再次编辑不太好处理,后来室友推荐了processon Proces ...
- js设计模式与绘制UML图 - 打车的面试题
题干描述 打车时,你可以打快车和专车 无论什么车,都有车牌号和车辆名称 打不同的车价格不同,快车每公里 1 元,专车每公里 2 元 打车时,你要启动行程并显示车辆信息 结束行程,显示价格(假定行驶了 ...
- 使用Markdown绘制UML图
UML图是一种交互图,它显示了进程如何相互操作以及以什么顺序运行,更多详情 UML示例 #mermaid-svg-6gUBKncz7oM7Coy2 {font-family:"trebuch ...
- visio画卷积神经网络示意图_visio模型绘制(如何使用visio2013如何绘制UML图)
在visio中迭代模型图怎么制作 visio里的数据库的ER图于课本上的不一样,因此只要使用相同的图形就可以了. 我一般是使用基本流程图(文件-形状-流程图-基本流程图)中的进程(矩形)和判定(菱形) ...
最新文章
- 杨强入选加拿大皇家科学院院士!此外还有3名华人学者入选
- redis RedisTemplate实现分布式锁
- 第2章 构建环境——安装Oracle 9i
- 使用VMware VSphere WebService SDK进行开发 (一)——基本信息阐述
- php实战https请求,用php发https请求
- 2017—2018 实验报告:实验一
- JavaFX UI控件教程(五)之Radio Button
- CocoaAsyncSocket 套接字
- mysql 异步_MySQL -- 异步I/O
- 数据库高可用实战案例-------架构优化之清爽一夏
- try catch 处理异常太烦人了,我已经不用了
- Shiro教程及案例
- 汽车行业(车厂)常见英文缩写及其中文含义(不断完善中)
- 六类双绞线排序和信息插座排序
- “浏览器设置从上次停下的地方继续,但是电脑重启打开后还是主页”问题的解决办法
- tart-dfs.sh 和start-all.sh的区别
- 图片视频去水印工具HitPaw Watermark Remover Mac
- 免费人工智能图像生成(PlaygroundAI)
- 概率模型——轧钢中的浪费、报童的诀窍
- 计算机视觉 英文论文,数字图像处理 外文翻译 外文文献 英文文献 数字图像处理方法研究.doc...