一文掌握UML类图-PlantUML实操

2020-09-22 10:22:28 浏览数 (1)

UML

UML(Unified Modeling Language,统一建模语言)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。

方便程序员间交流,读别人代码是真的痛苦。

UML主要有以下作用:

  1. 为软件系统建立可视化模型
  2. 为软件系统建立构件
  3. 为软件系统建立文档

UML图分类:

  1. 用例图
  2. 静态结构图:<font color=red>类图</font>、对象图、包图、组件图、部署图
  3. 动态行为图:交互图(时序图与协作图)、状态图、活动图

其中类图是描述类与类之间的关系的,是UML图中最核心的,本文将结合PlantUML展开介绍类图,如果该文章点赞破百,则将会更新其他UML图分类

类图

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。类图也可用于数据建模。

  • 类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。

依赖

只要是在类中用到了对方,那么他们之间就存在依赖(Dependency)关系。如果没有对方,连编绎都通过不了的那种。比如

1) 类中用到了对方

2) 是类的成员属性

3) 是方法的返回类型

4) 是方法接收的参数类型

5) 方法中使用到

泛化

泛化关系(Generalization)是实际上是继承关系,是依赖关系的特例,如果A类继承了B类,那么A和B存在泛化关系。

实现

实现关系(Realization)实际上就是类和接口的关系,表示类是接口所有特征和行为的实现,也是依赖关系的特例。

关联

关联关系(Association)实际上是类和类之间的联系,是一种拥有的关系,它使一个类知道另一个类的属性和方法,也是依赖关系的特例。

关联具有<font color=red>导航性</font>:即双向关系或单向关系,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。nm、1n等标识可无。

聚合

聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开,部分可以脱离整体单独存在,属于关联的特例,可用箭头标识导航性,使用带空心菱形的实线来表示:

组合

组合关系(Composition)也是整体与部分的关系,但是整体与部分不可以分开,部分可以脱离整体单独存在,属于关联的特例,可用箭头标识导航性,使用带实心菱形的实线来表示:

怎么画类图?

说了这么多,那么怎么画类图呢?且继续往下看。

环境准备

在IDEA安装PlantUML插件,以便操作演练,当然了如果不想安装,也可以使用PlantUML在线网站,跳过本节

安装Graphviz

首先需要安装Graphviz可视化图形软件提供依赖支持。

  1. 下载 https://www2.graphviz.org/Packages/development/windows/10/
  2. 安装 注意修改安装路径,其余默认下一步就好。
  3. 配置变量 我的电脑->属性->高级系统设置->环境变量->path->新建
M0NzA4,size_16,color_FFFFFF,t_70#pic_center)M0NzA4,size_16,color_FFFFFF,t_70#pic_center)
  1. 测试

安装PlantUML

打开IDEA,File->settings->plugins,搜索uml,安装PlantUML

安装好后重启IDEA,就能新建PantUML File了。

PlantUML

定义

如果未定义就直接使用,默认为类。

类型

关键字

图例

class

抽象类

abstract

接口

interface

接口

棒棒糖样式

枚举

enum

注释

annotation

泛型

加<?..>

方法

访问范围

符号

private

-

protected

/#

package private

~

public

此外通过修饰符{static}、{abstract},可以定义静态、抽象的方法或者属性。

关系

'>'表示箭头,‘|>’表示三角箭头,'o'表示空心菱形,'*'表示实心菱形

‘.’表示虚线,‘-’表示实线,一个是水平方向,两个以上是竖直方向。

  • 关系上的标识 在关系之间使用标签来说明时, 使用 :后接 标签文字; 对元素的说明,你可以在每一边使用 "" 来说明。

这样一来就能表示各种关系的线了。

关系

符号

图例

依赖

.>

泛化

->

实现

.|>

关联

-

聚合

-o

组合

-*

注释

  • 可以使用note left of , note right of , note top of , note bottom of这些关键字来添加备注
  • 还可以在类的声明末尾使用note left, note right,note top, note bottom来添加备注
  • 单独用note这个关键字也是可以的,使用 .. 符号可以作出一条连接它与其它对象的虚线

后记

画类图还有更多细节和扩展可参考PlantUML文档:https://plantuml.com/zh/class-diagram

踩了很多坑,比如安装Graphviz时没有执行”dot -c“指令,idea报错全网还找不到,从入门到放弃

如果该文章点赞破百,则将会更新其他UML图分类。

原创不易,请勿转载本不富裕的访问量雪上加霜

博主首页:https://blog.csdn.net/qq_45034708

如果文章对你有帮助,记得关注点赞收藏❤

0 人点赞