PlantUML绘制类图
系列文章目录
PlantUML绘制活动图https://blog.csdn.net/zhangwei_david/article/details/125507374
PlantUML 绘制时序图https://blog.csdn.net/zhangwei_david/article/details/125451459
目录
系列文章目录
前言
二、使用PlantUML绘制类图
1.类
1.1类名
1.2 类的属性与方法
1.3可访问性
1.4 静态与抽象
2.类之间的关系
2.1一般泛化关系
2.2关联关系
2.3聚合关系
2.4合成关系
2.5类与包
三、颜色和样式
3.1 关系的颜色和样式
3.2类的颜色和样式
前言
类图是描述类、接口以及它们之间的静态关系图;本文主要介绍如何使用PlantUML 绘制类图
一、描述类的类图
一个类图可以分为以下几个部分
- 类名,在名中可以区分抽象类,接口,注解等
- 属性,一个属性可以是public,protected或provide
- 方法,一个方法同属性一样,它可以是public ,protected或provide
二、使用PlantUML绘制类图
1.类
1.1类名
说明 | 语法 | 图示 |
类 | class className | |
抽象类 |
abstract className abstract class "className" |
|
接口 | interface interfaceName | |
实体 | entity entityName | |
枚举 | enum enumName | |
注解 | annotation annotationName | |
结构 | struct structName | |
协议 | protocol protocalName | |
圆形 | cicrle cicleName / () cicleName | |
菱形 | diamond diamondName / <> diamondName |
1.2 类的属性与方法
在PlantUML 中要声明一个类的属性和方法,可以使用符号":",后面跟属性名或方法名称
@startuml
Object:equals()@enduml
对于复杂的属性与方法可以在{ }定义所有属性与方法
@startumlclass Dummy{
String data
void methods()
}
@enduml
1.3可访问性
在定义属性与方法时,可以使用特殊符号定义相应属性或方法的可访问性值
字符 | 图标(属性) | 图标(方法) | 可访问性 |
-
|
private 私有
|
||
#
|
protected 受保护
|
||
~
|
package private 包内可见
|
||
+
|
public 公有
|
1.4 静态与抽象
在定义属性与方法时候,有可能需要定义静态属性或静态方法以及抽象方法,在PlantUML 中可以通过{static}, {abstract}来定义。
@startuml
class Dummy {{static} String id{abstract} void methods()
}
@enduml
2.类之间的关系
首先看一下PlantUML 中对于类之间关系的语法
关系类型 | 符号 | 绘图 |
泛化关系 |
<|--
|
|
关联关系 | -- | —— |
合成关系 |
*--
|
|
聚合关系 |
o--
|
|
继承 | extends |
class ArrayList implements List |
实现 | implements |
class ArrayList extends AbstractList |
2.1一般泛化关系
一般泛化关系表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现。一般泛化关系是从子类指向父类或从实现类指向被实现的接口。
2.2关联关系
关联关系是类与类之间的联接,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的。每一个关联的断点还可以有一个基数,表明这一端的类可以有几个实例。在PlantUML 中使用“”来说明每端的基数;常见的基数有:
基数 | 含义 | |
0..1 | 零个或1个实例 | 类1 "1" *-- "1..*" 类2 |
0..* 或 * | 零个或多个 | |
1 | 只有一个实例 | |
1..* | 至少1个实例 |
2.3聚合关系
聚合关系是关联关系的一种,是强关联关系。聚合是整体与个体之间的关系。比如汽车与发送机和轮子之间的关系就是整体与个体之间的关系,一辆汽车是由一个发动机和四个轮子组成的,它们之间的类图如下:
2.4合成关系
和成关系也是关联关系的一种,是比聚合关系更强的一种关系。代表整体关系要负责保持部分对象的存活,部分关系必须依赖于整体;比如猴子与四肢之间的关系就是合成关系,四肢不能脱离猴子独立存在。
2.5类与包
可以通过关键字 package声明包,在包中声明类
@startuml
package "Classic Collections" #DDDDDD {Object <|-- ArrayList
}
@enduml
三、颜色和样式
如果想绘制一个美观的类图,我们还需要调整颜色和样式,下面就介绍PlantUML 颜色和样式如何设置
3.1 关系的颜色和样式
改变表示关系的线和箭头的颜色或样式,使用下面的单行样式格式:
#color;line.[bold|dashed|dotted];text:color
示例:
@startuml
class foo类
foo类 --> bar类 : 默认
foo类 --> bar类1 #line:red;line.bold;text:red : 红色粗线
foo类 --> bar类2 #green;line.dashed;text:green : 绿色断线
foo类 --> bar类3 #blue;line.dotted;text:blue : 蓝色点线
@enduml
3.2类的颜色和样式
改变类的颜色和样式,可以使用下面方式:
#color ##[style]color
#[color|background:color];header:color;line:color;line.[bold|dashed|dotted];text:color
示例1:
@startuml
abstract 抽象类
annotation 注解 #pink ##[bold]red
class 类 #palegreen ##[dashed]green
interface 接口 #aliceblue ##[dotted]blue
@enduml
示例2:
@startuml
abstract 抽象类
annotation 注解 #pink;line:red;line.bold;text:red
class 类 #palegreen;line:green;line.dashed;text:green
interface 接口 #aliceblue;line:blue;line.dotted;text:blue
@enduml
PlantUML绘制类图相关推荐
- plantuml 依赖_使用PlantUML绘制类图
本文基于sublime的PlantUML插件绘制类图.如需了解插件安装,请点击 Sublime安装PlantUML插件 类的UML表示 使用UML表示一个类,主要由三部分组成. 类名 . 属性 . 方 ...
- PlantUML绘制活动图
PlantUML系列文章 PlantUML 绘制时序图https://blog.csdn.net/zhangwei_david/article/details/125451459 PlantUML绘制 ...
- PlantUML 绘制时序图
PlantUML系列文章 PlantUML绘制活动图https://blog.csdn.net/zhangwei_david/article/details/125507374PlantUML绘制类图 ...
- 使用 PlantUML 绘制时序图
目录 一.简介 二.安装 1.1 安装插件到PyCharm 2.2 验证 2.2.1 插件检查是否安装 2.2.2 新建PlantUML文件 一.简介 Github地址:https://github. ...
- plantuml绘制UML图
转载自:https://www.cnblogs.com/youlangta/p/7878777.html Table of Contents 前言 什么是PlantUML 在Emacs里配置Plant ...
- uml 类图 网上书店_UML作业第三次:分析《书店图书销售管理系统》,绘制类图...
分析书店图书销售管理业务,提取相关的类,并画出类图 一.要求及步骤 step1:学习PlantUML类图绘制方法,学习(链接:http://plantuml.com/zh/): step2:以< ...
- IDEA使用PlantUML构建类图,时序图等
0.美图 1.说明 有的可以直接安装,在File -> settings ->plugins直接搜索PlantUML就可以使用 有的默认已经安装,只需要勾选就可以了 有的能搜索到,就可以直 ...
- [转]PlantUML画类图、流程图、时序图使用详解
程序员难免要经常画流程图,状态图,时序图等.以前经常用 visio 画,经常为矩形画多大,摆放在哪等问题费脑筋.有时候修改文字后,为了较好的显示效果不得不再去修改图形.今天介绍的工具是如何使用 Pla ...
- PlantUML画类图、流程图、时序图使用详解
程序员难免要经常画流程图,状态图,时序图等.以前经常用 visio 画,经常为矩形画多大,摆放在哪等问题费脑筋.有时候修改文字后,为了较好的显示效果不得不再去修改图形.今天介绍的工具是如何使用 Pla ...
最新文章
- 练习2-17 生成3的乘方表 (15 分)
- matplotlib安装成功但import失败_统信UOS安装失败,deepinv20.1国产操作系统安装成功...
- 508人决战,北大占绝对优势,2021阿里全球数学决赛真题发布!
- python强大体现在哪些方面-什么python的if语句?它主要应用在哪些方面?
- python 获取首字母_python获取汉字首字母-Go语言中文社区
- java实体类怎么写_Java中(entity)实体类的书写规范
- Spring-Cloud 学习笔记-(4)负载均衡器Ribbon
- 信息流服务器哪种好,选购存储服务器需要注意六大关键因素,你知道几个?
- Xcode 9.0 beta 3 GPUImage崩溃问题(presentBufferForDisplay)
- MySQL Statement Cancellation Timer] but has failed to stop it.
- [RTOS]--uCOS、FreeRTOS、RTThread、RTX等RTOS的对比之特点
- IO设备的控制器 适配器
- matlab三轴定位程序,三边测量定位MATLAB源码
- 虚幻4引擎虚拟现实项目制作教程
- CANopen 7.过程数据对象 PDO Process data object)
- word2010添加论文引用
- 用c++写一个cps测试
- 让人春分日 哈工科教110132.平面分割
- 凤凰系统虚拟机装卡_虚拟机安装凤凰系统(PhoenixOS)教程
- 【Pandas】根据某列分组求和
热门文章
- 牛客网:接雨水的双指针问题
- 清华大学邓志东:自动驾驶的“感”与“知” - 挑战与机遇(附视频)
- 国家版权中心软件著作权网站注册不了的bug修复
- Struts + hibernate +spring课堂笔记
- Web漏洞之SSRF(服务器端请求伪造)
- 如何打开一个网页做自动化测试
- 100道动态规划——34 UVA 10559 Blocks 状态的定义 状态转移方程
- 【毕业设计】基于单片机的智能避障扫地机器人 -物联网 嵌入式
- 洛谷 P1074 靶形数独
- JAVA学习第十四课(接口:implements及其基本应用)