• PlantUML绘制类图


    系列文章目录

    PlantUML 绘制时序图


    目录

    系列文章目录

    前言

    二、使用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 中要声明一个类的属性和方法,可以使用符号":",后面跟属性名或方法名称

    1. @startuml
    2. Object:equals()
    3. @enduml

    对于复杂的属性与方法可以在{ }定义所有属性与方法

    1. @startuml
    2. class Dummy{
    3. String data
    4. void methods()
    5. }
    6. @enduml

     

    1.3可访问性

    在定义属性与方法时,可以使用特殊符号定义相应属性或方法的可访问性值

    字符图标(属性)图标(方法)可访问性
    -

    private 私有
    #

    protected 受保护
    ~

    package private 包内可见
    +

    public 公有

     1.4 静态与抽象

    在定义属性与方法时候,有可能需要定义静态属性或静态方法以及抽象方法,在PlantUML 中可以通过{static}, {abstract}来定义。

    1. @startuml
    2. class Dummy {
    3. {static} String id
    4. {abstract} void methods()
    5. }
    6. @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声明包,在包中声明类

    1. @startuml
    2. package "Classic Collections" #DDDDDD {
    3. Object <|-- ArrayList
    4. }
    5. @enduml

    三、颜色和样式 

    如果想绘制一个美观的类图,我们还需要调整颜色和样式,下面就介绍PlantUML 颜色和样式如何设置

    3.1 关系的颜色和样式

    改变表示关系的线和箭头的颜色或样式,使用下面的单行样式格式:

    #color;line.[bold|dashed|dotted];text:color

    示例:

    1. @startuml
    2. class foo类
    3. foo类 --> bar类 : 默认
    4. foo类 --> bar类1 #line:red;line.bold;text:red : 红色粗线
    5. foo类 --> bar类2 #green;line.dashed;text:green : 绿色断线
    6. foo类 --> bar类3 #blue;line.dotted;text:blue : 蓝色点线
    7. @enduml

    3.2类的颜色和样式

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

    1. #color ##[style]color
    2. #[color|background:color];header:color;line:color;line.[bold|dashed|dotted];text:color

    示例1:

    1. @startuml
    2. abstract 抽象类
    3. annotation 注解 #pink ##[bold]red
    4. class#palegreen ##[dashed]green
    5. interface 接口 #aliceblue ##[dotted]blue
    6. @enduml

    示例2:

    1. @startuml
    2. abstract 抽象类
    3. annotation 注解 #pink;line:red;line.bold;text:red
    4. class#palegreen;line:green;line.dashed;text:green
    5. interface 接口 #aliceblue;line:blue;line.dotted;text:blue
    6. @enduml

     

  • 相关阅读:
    网盟广告定位条件以及所需素材
    2022最新!视觉SLAM综述(多传感器/姿态估计/动态环境/视觉里程计)
    现货黄金基本知识:黄金策略五大心法
    读懂MCU产品选型表
    Vulnhub: Masashi: 1靶机
    计算机毕业设计之java+ssm基于微信小程序的游戏美术外包管理信息系统
    Clion C项目集成sqlite、IDE插件连接与C代码连接基本操作
    DMPE-PEG-Mal 二肉豆蔻酰磷脂酰乙醇胺-聚乙二醇-马来酰亚胺避光储藏
    com.google.code:kaptcha-2.3.jar
    My Seventy-fifth Page - 组合总和Ⅳ - By Nicolas
  • 原文地址:https://blog.csdn.net/zhangwei_david/article/details/125477021