一文掌握UML类图:PlantUML实操分享

UML


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

  • UML主要有以下作用:
  1. 为软件系统建立可视化模型
  2. 为软件系统建立构件
  3. 为软件系统建立文档
  • UML图分类:
  1. 用例图
  2. 静态结构图:类图、对象图、包图、组件图、部署图
  3. 动态行为图:交互图(时序图与协作图)、状态图、活动图

其中类图是描述类与类之间的关系的,是UML图中最核心的,本文将结合PlantUML展开介绍类图。
用例图和时序图:一文掌握UML用例图和时序图:PlantUML实操分享

类图


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

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

依赖

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

  1. 类中用到了对方
  2. 是类的成员属性
  3. 是方法的返回类型
  4. 是方法接收的参数类型
  5. 方法中使用到

在这里插入图片描述

泛化

泛化关系(Generalization)是实际上是继承关系,是依赖关系的特例,如果A类继承了B类,那么A和B存在泛化关系。
在这里插入图片描述

实现

实现关系(Realization)实际上就是类和接口的关系,表示类是接口所有特征和行为的实现,也是依赖关系的特例。
在这里插入图片描述

关联

关联关系(Association)实际上是类和类之间的联系,是一种拥有的关系,它使一个类知道另一个类的属性和方法,也是依赖关系的特例。
关联具有导航性:即双向关系或单向关系,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。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)
4. 测试
在这里插入图片描述

安装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用例图和时序图:PlantUML实操分享

原创不易,请勿转载本不富裕的访问量雪上加霜
博主首页:https://blog.csdn.net/qq_45034708
如果文章对你有帮助,记得关注点赞收藏❤

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页