系列文章目录

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 绘制类图


一、描述类的类图

一个类图可以分为以下几个部分

  1. 类名,在名中可以区分抽象类,接口,注解等
  2. 属性,一个属性可以是public,protected或provide
  3. 方法,一个方法同属性一样,它可以是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类的颜色和样式

改变类的颜色和样式,可以使用下面方式:

  1. #color ##[style]color
  2. #[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绘制类图相关推荐

  1. plantuml 依赖_使用PlantUML绘制类图

    本文基于sublime的PlantUML插件绘制类图.如需了解插件安装,请点击 Sublime安装PlantUML插件 类的UML表示 使用UML表示一个类,主要由三部分组成. 类名 . 属性 . 方 ...

  2. PlantUML绘制活动图

    PlantUML系列文章 PlantUML 绘制时序图https://blog.csdn.net/zhangwei_david/article/details/125451459 PlantUML绘制 ...

  3. PlantUML 绘制时序图

    PlantUML系列文章 PlantUML绘制活动图https://blog.csdn.net/zhangwei_david/article/details/125507374PlantUML绘制类图 ...

  4. 使用 PlantUML 绘制时序图

    目录 一.简介 二.安装 1.1 安装插件到PyCharm 2.2 验证 2.2.1 插件检查是否安装 2.2.2 新建PlantUML文件 一.简介 Github地址:https://github. ...

  5. plantuml绘制UML图

    转载自:https://www.cnblogs.com/youlangta/p/7878777.html Table of Contents 前言 什么是PlantUML 在Emacs里配置Plant ...

  6. uml 类图 网上书店_UML作业第三次:分析《书店图书销售管理系统》,绘制类图...

    分析书店图书销售管理业务,提取相关的类,并画出类图 一.要求及步骤 step1:学习PlantUML类图绘制方法,学习(链接:http://plantuml.com/zh/): step2:以< ...

  7. IDEA使用PlantUML构建类图,时序图等

    0.美图 1.说明 有的可以直接安装,在File -> settings ->plugins直接搜索PlantUML就可以使用 有的默认已经安装,只需要勾选就可以了 有的能搜索到,就可以直 ...

  8. [转]PlantUML画类图、流程图、时序图使用详解

    程序员难免要经常画流程图,状态图,时序图等.以前经常用 visio 画,经常为矩形画多大,摆放在哪等问题费脑筋.有时候修改文字后,为了较好的显示效果不得不再去修改图形.今天介绍的工具是如何使用 Pla ...

  9. PlantUML画类图、流程图、时序图使用详解

    程序员难免要经常画流程图,状态图,时序图等.以前经常用 visio 画,经常为矩形画多大,摆放在哪等问题费脑筋.有时候修改文字后,为了较好的显示效果不得不再去修改图形.今天介绍的工具是如何使用 Pla ...

最新文章

  1. 练习2-17 生成3的乘方表 (15 分)
  2. matplotlib安装成功但import失败_统信UOS安装失败,deepinv20.1国产操作系统安装成功...
  3. 508人决战,北大占绝对优势,2021阿里全球数学决赛真题发布!
  4. python强大体现在哪些方面-什么python的if语句?它主要应用在哪些方面?
  5. python 获取首字母_python获取汉字首字母-Go语言中文社区
  6. java实体类怎么写_Java中(entity)实体类的书写规范
  7. Spring-Cloud 学习笔记-(4)负载均衡器Ribbon
  8. 信息流服务器哪种好,选购存储服务器需要注意六大关键因素,你知道几个?
  9. Xcode 9.0 beta 3 GPUImage崩溃问题(presentBufferForDisplay)
  10. MySQL Statement Cancellation Timer] but has failed to stop it.
  11. [RTOS]--uCOS、FreeRTOS、RTThread、RTX等RTOS的对比之特点
  12. IO设备的控制器 适配器
  13. matlab三轴定位程序,三边测量定位MATLAB源码
  14. 虚幻4引擎虚拟现实项目制作教程
  15. CANopen 7.过程数据对象 PDO Process data object)
  16. word2010添加论文引用
  17. 用c++写一个cps测试
  18. 让人春分日 哈工科教110132.平面分割
  19. 凤凰系统虚拟机装卡_虚拟机安装凤凰系统(PhoenixOS)教程
  20. 【Pandas】根据某列分组求和

热门文章

  1. 牛客网:接雨水的双指针问题
  2. 清华大学邓志东:自动驾驶的“感”与“知” - 挑战与机遇(附视频)
  3. 国家版权中心软件著作权网站注册不了的bug修复
  4. Struts + hibernate +spring课堂笔记
  5. Web漏洞之SSRF(服务器端请求伪造)
  6. 如何打开一个网页做自动化测试
  7. 100道动态规划——34 UVA 10559 Blocks 状态的定义 状态转移方程
  8. 【毕业设计】基于单片机的智能避障扫地机器人 -物联网 嵌入式
  9. 洛谷 P1074 靶形数独
  10. JAVA学习第十四课(接口:implements及其基本应用)