plantuml 依赖_PlantUML参考手册

plantuml 依赖_PlantUML参考手册title PlantUML 参考手册 date 2020 03 0315 37 35tags UML 手册 categories 手册 UMLPlantUML 参考手册前言 UML 中的关系主要分为六种 关联 association 聚合 aggregation 组合 composition 依赖 dependency 使用泛化 generalizati 继承 inheritanc

title: PlantUML参考手册

date: 2020-03-03 15:37:35

tags:

– UML

– 手册

categories:

– 手册

– UML

PlantUML参考手册

前言

UML中的关系主要分为六种:

关联(association)

聚合(aggregation)

组合(composition)

依赖(dependency)/使用

泛化(generalization)/继承(inheritance)

实现(realization)

关系

PlantUML中的表示方法

样式

依赖关系

plantuml 依赖_PlantUML参考手册

关联关系

plantuml 依赖_PlantUML参考手册

聚合关系

o–

plantuml 依赖_PlantUML参考手册

组合关系

*–

plantuml 依赖_PlantUML参考手册

实现关系

plantuml 依赖_PlantUML参考手册

泛化/继承关系

plantuml 依赖_PlantUML参考手册

依赖关系

简单理解就是在某个方法里通过传参、返回值、成员变量、局部变量的方式用到了某个类

Java表达方式

class ImageLoader{

loadImage(ImageInfo info)

}

class ImageInfo{

}

UML类图表达方式

使用UML类图表示该关系:用实心箭头+虚线表示

plantuml 依赖_PlantUML参考手册

PlantUML代码表达方式

//ImageLoader 依赖/使用

PlantUML中的表示方法:ImageInfo

关联关系

简单理解就是类里面作为属性引用了另一个类

Java表达方式

class Window {

public WindowManager mWindowManager

}

class WindowManager{

}

UML类图表达方式

使用UML类图表示该关系:用实心箭头+实线表示

plantuml 依赖_PlantUML参考手册

PlantUML代码表达方式

PlantUML中的表示方法:WindowManager

聚合关系

​表示整体和部分,一个类属性使用列表保存很多个另一个类对象(可通过List、set、数组等等集合)

Java表达方式

class Company{

List mDepartments

}

class Department{

}

UML类图表达方式

使用UML类图表示该关系:用空心菱形+实线表示

plantuml 依赖_PlantUML参考手册

PlantUML代码表达方式

PlantUML中的表示方法:Company o– Department:聚合关系

组合关系

相比聚合更加紧密的关系,生死与共,不能单独存在

Java表达方式

class Bird{//小鸟

Wing mWing;//翅膀

}

class Wing{//翅膀

}

UML类图表达方式

使用UML类图表示该关系:用实心菱形+实线表示

plantuml 依赖_PlantUML参考手册

PlantUML代码表达方式

PlantUML中的表示方法:Bird *– Wing:组合关系

泛化/继承关系

用来表示类之间的继承关系

Java表达方式

abstract class Factory{

abstract makeProduct()

}

class PhoneFactory extends Factory{

}

class CarFactory extends Factory{

}

UML类图表达方式

使用UML类图表示该关系:用空心箭头+实线表示

plantuml 依赖_PlantUML参考手册

PlantUML代码表达方式

PlantUML中的表示方法:Factory

实现关系

用来表示一个类实现某个一个接口

Java表达方式

interface IColorDraw{

draw()

}

class RedColorDraw{

draw()

}

class BlueColorDraw{

draw()

}

UML类图表达方式

使用UML类图表示该关系:用空心箭头+虚线表示

plantuml 依赖_PlantUML参考手册

PlantUML代码表达方式

PlantUML中的表示方法:IColorDraw

完整的PlantUML表示

UML类图

plantuml 依赖_PlantUML参考手册

PlantUML代码

@startuml

class ImageLoader{

loadImage(ImageInfo)

}

class ImageInfo{

}

ImageInfo <.. imageloader :>

class Window {

-WindowManager mWindowManager

}

class WindowManager

WindowManager

class Company

class Department

Company o– Department:聚合关系

class Bird

class Wing

Bird *– Wing:组合关系

abstract class Factory

class PhoneFactory

class CarFactory

Factory

Factory

interface IColorDraw{

draw()

}

class RedColorDraw{

draw()

}

class BlueColorDraw{

draw()

}

IColorDraw

IColorDraw

@enduml

关系上的标识

在关系之间使用标签来说明时, 使用 :后接 标签文择本地图片字。对元素的说明,你可以在每一边使用 “” 来说明.

plantuml 依赖_PlantUML参考手册

@startuml

Class01 “1” *– “many” Class02 : contains

Class03 o– Class04 : aggregation

Class05 –> “1” Class06

@enduml

在标签的开始或结束位置添加< 或 >以表明是哪个对象作用到哪个对象上。

plantuml 依赖_PlantUML参考手册

@startuml

class Car

Driver – Car : drives >

Car *- Wheel : have 4 >

Car — Person : < owns

@enduml

定义可访问性

一旦你定义了域或者方法,你可以定义 相应条目的可访问性质。

表示方式

描述属性时的样式

描述方法时的样式

代表的访问标识符

plantuml 依赖_PlantUML参考手册

plantuml 依赖_PlantUML参考手册

private

#

plantuml 依赖_PlantUML参考手册

plantuml 依赖_PlantUML参考手册

protected

~

plantuml 依赖_PlantUML参考手册

plantuml 依赖_PlantUML参考手册

package private

+

plantuml 依赖_PlantUML参考手册

plantuml 依赖_PlantUML参考手册

public

例:

plantuml 依赖_PlantUML参考手册

@startuml

class Dummy {

-field1

#field2

~method1()

+method2()

}

@enduml

抽象与静态

通过修饰符{static}或者{abstract},可以定义静态或者抽象的方法或者属性。这些修饰符可以写在行的开始或者结束。也可以使用{classifier}这个修饰符来代替{static}.

plantuml 依赖_PlantUML参考手册

@startuml

class Dummy {

{static} String id

{abstract} void methods()

}

@enduml

备注和模板

模板通过类关键字(“<>”)来定义你可以使用note left of , note right of , note top of , note bottom of这些关键字来添加备注。你还可以在类的声明末尾使用note left, note right,note top, note bottom来添加备注。此外,单独用note这个关键字也是可以的,使用 .. 符号可以作出一条连接它与其它对象的虚线。

plantuml 依赖_PlantUML参考手册

@startuml

class Object << general >> /'<>’/

Object

/’方式1:note top of 名称 : 内容….’/

note top of Object : In java, every class\nextends this one.

/’声明一个备注格式:

note “内容” as 备注名称

‘/

note “This is a floating note” as N1

note “This note is connected\nto several objects.” as N2

/’方式2:名称 .. 备注名称’/

Object .. N2

N2 .. ArrayList

/’方式3: 在声明类下一行用 note left: 内容….

left 表示标签显示在左侧

right 表示显示在右侧

‘/

class Foo

note left: On last defined class

@enduml

抽象类和接口

用关键字abstract或abstract class来定义抽象类。抽象类用斜体显示。 也可以使用interface, annotation 和 enum关键字。

plantuml 依赖_PlantUML参考手册

@startuml

abstract class AbstractList /’定义抽象类’/

abstract AbstractCollection

interface List /’定义接口’/

interface Collection

List

Collection

Collection

AbstractCollection

AbstractList

class ArrayList {

Object[] elementData

size()

}

/’定义枚举’/

enum TimeUnit {

DAYS

HOURS

MINUTES

}

annotation SuppressWarnings

@enduml

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231709.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】

    【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】一、邮件发送  1.邮件发送使用SMTP协议或者IMAP协议,这里使用SMTP协议演示。    SMTP协议使用的端口号:25    rfc821详细记载了该协议的相关信息    (1)使用telnet发送邮件(使用126邮箱服务器,现在126邮箱服务器要求使用类似于QQ的独立密码进行客户端的验证(网页登陆不需要))      第一步:连接到邮箱服务器        …

    2025年10月26日
    2
  • 第一范式、第二范式及第三范式的定义与举例

    第一范式、第二范式及第三范式的定义与举例第一范式存在非主属性对码的部分依赖关系R(A,B,C)AB是码C是非主属性B–>CB决定CC部分依赖于B第一范式定义:如果关系R中所有属性的值域都是单纯域,那么关系模式R是第一范式的那么符合第一模式的特点就有1)有主关键字2)主键不能为空,3)主键不能重复,4)字段不可以再分例如: StudyNo  |  Name  |  Sex  

    2022年5月22日
    64
  • pycharm默认编码_编码需要注意什么

    pycharm默认编码_编码需要注意什么这两天爬取东西的时候经常出现编码的问题,错误如下:UnicodeEncodeError:’gbk’codeccan’tencodecharacter’\xa9’inposition75:illegalmultibytesequ找了很多资料也没发现有用的,问了一些朋友也不知道,然后自己试着改了下pycharm的一些东西,就好了具体步骤:File–&gt;Se…

    2022年8月27日
    3
  • 计算机病毒模块测试题,计算机病毒分类测试题集

    计算机病毒模块测试题,计算机病毒分类测试题集以下有关计算机病毒分类的陈述______是正确的.A)病毒分为十二类B)病毒分为操作系统类型和文件类型C)没有分类D)病毒分为外壳型和侵入型根据计算机病毒的破坏能力,计算机病毒可分为A.良性病毒B.恶性病毒C.网络病毒D.引导病毒根据计算机病毒的存在方式进行分类,通常可以分为().A.复杂病毒B.引导病毒C.文件病毒D.网络病毒这个问题是一个选择题.请帮助给出正确的答案和分析,谢…

    2022年5月9日
    34
  • CNN经典模型汇总[通俗易懂]

    CNN经典模型汇总[通俗易懂]本文主要对CNN领域的经典模型进行汇总,算是对近期的学习做一个小总结。基础知识作为深度学习的基础,神经网络这个算法是必须要有深入的了解的,这里不介绍太多,简单介绍一下原理和单个神经元的结构:一、BP神经网络的概念BP神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是反向传播的。具体来说,对于如下的只含一个隐层的神经网络模型:BP神经网络的过程主要分为两个阶段,第一阶段是信号

    2022年4月19日
    52
  • SVM和logistic regression的一些对比

    SVM和logistic regression的一些对比

    2021年6月15日
    111

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号