PlantUML文本绘制类图

这篇具有很好参考价值的文章主要介绍了PlantUML文本绘制类图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

记录下文本绘制类图的语法
参考 https://juejin.cn/post/6844903731293585421

类的UML表示

使用UML表示一个类,主要由三部分组成。类名、属性、方法。其中属性和方法的访问修饰符用 - 、# 、+ 表示 private、protected、public。
如图所示,表示A类有一个private属性,protected 构造函数和public方法。

@startuml

class A{
	- String field
	+ A()
	# void method()
}
' 单行备注
note right: 这是测试类 A

class B{
	- String field
	+ B()
	# void method()
}
' 多行备注
note left
Hello
World
end note

@enduml

PlantUML文本绘制类图,uml

类的关系

在面向对象语言中,类的关系有很多种,可以概括为三类:泛化、依赖、关联。

泛化

泛化指父类跟子类的关系,表示is-a的关系。如父类是抽象类或普通类,则这种关系叫继承。如,父类是接口,则这种关系叫实现。UML中,继承和实现由不同的标记表示。

继承

PlantUML用 --|> 表示继承关系。实线和三角形的抽象表示,指向谁,即继承谁。

@startuml

    class A
    abstract B

    ' A 继承 B
    A --|> B

@enduml

PlantUML文本绘制类图,uml

实现

PlantUML用 …|> 表示实现关系。虚和三角形的抽象表示,指向谁,即实现谁。

@startuml

    class A
    interface C

    ' A 实现 C
    A ..|> C

@enduml

PlantUML文本绘制类图,uml

依赖:B类作为A类的参数、局部变量、静态方法调用

类之间,最弱的关联方式。常用于在A类的方法中使用B类的对象作为参数、局部变量或者对B类静态方法的调用。
PlantUML用 …> 表示依赖关系。虚线和箭头的抽象表示,指向谁,即依赖谁。

@startuml

    class A
    class B

    ' A 依赖 B
    A ..> B

@enduml

PlantUML文本绘制类图,uml

关联:对象间的引用关系

关联关系,即对象之间的引用关系。常使用类的属性表达。

单向关联:A类有B类属性

B类作为A类的属性,表示A类与B类有关联。 PlantUML用 --> 表示单向关联。实线线和箭头的抽象表示,指向谁,即关联谁。

@startuml

	class A{
		- B b
	}
	class B

	' A 关联 B
	A --> B

@enduml

PlantUML文本绘制类图,uml

双向关联:A、B类互相有对方属性

B类作为A类的属性同时,A类也是B类的属性,表示双向关联。 PlantUML用 – 表示双向关联。或者用<–>。

@startuml

	class A{
		- B b
	}
	class B{
		- A a
	}

	' A 关联 B
	A -- B

@enduml

PlantUML文本绘制类图,uml

自关联:A类有A类的属性

A类关联A类自身。常见于单例模式。

@startuml

	class A{
		- A a
	}
	

	' A 关联 A
	A --> A

@enduml

PlantUML文本绘制类图,uml

聚合:学生之于班级

在关联关系的基础上,延伸出聚合关系,强的关联关系,表示has-a关系。整体与部分的关系,部分不依赖于整体,可独立存在。常用于成员变量。
如;汽车和轮胎的关系,轮胎可作为独立的商品出售。
PlantUML用 o-- 表示聚合关系。实线和空心菱形的抽象表示,指向谁,表示谁是整体。

@startuml

	class Car{
		- List<Wheel> wheels
	}
	class Wheel

	' Car 关联 Wheel
	Car "1" o-- "4" Wheel

@enduml

PlantUML文本绘制类图,uml

图中数字1和4也表示一对多关联。N对N同理。

组合:翅膀之于鸟

在关联关系的基础上,延伸出另外一种关联关系,组合关系,表示contains-a关系。整体与部分的关系,部分依赖于整体,不可独立存在。常用于成员变量。
如:身体和动作的关系。
PlantUML用 *-- 表示聚合关系。实线和实心菱形的抽象表示,指向谁,表示谁是整体。

@startuml

	class Body{
		- List<Action> actions
	}
	class Action

	' Body 关联 Action
	Body "1" *-- "N" Action

@enduml

PlantUML文本绘制类图,uml

排版

相比较其他的UML软件或插件。PlantUML的优势在于,存储的是文本文件,可以方便的进行团队协作以及高度可定制化的依赖关系。但是,最大的缺点在于,排版是通过插件自动生成的,排版效果不尽人意。因此,PlantUML提供四个关键字 up、down、left、right。指定类与类之间的相对关系。

default

箭头向左时,被指向对象在上; 箭头向右时,被指向对象在下。

@startuml

class A1
class B1

A1 --> B1

class A2
class B2
A2 <-- B2

@enduml

PlantUML文本绘制类图,uml

up

使用up时,被指向对象在上。

@startuml

class A1
class B1

A1 -up-> B1

class A2
class B2
A2 <-up- B2

@enduml

PlantUML文本绘制类图,uml

down

使用down时,被指向对象在下。

@startuml

class A1
class B1

A1 -down-> B1

class A2
class B2
A2 <-down- B2

@enduml

PlantUML文本绘制类图,uml

left

使用left时,被指向对象在左。

@startuml

class A1
class B1

A1 -left-> B1

class A2
class B2
A2 <-left- B2

@enduml

PlantUML文本绘制类图,uml

right

使用right时,被指向对象在右。

@startuml

class A1
class B1

A1 -right-> B1

class A2
class B2
A2 <-right- B2

@enduml

PlantUML文本绘制类图,uml

@startuml

package "Classic Collections" #yellow{
  Object <|-- ArrayList
}

package net.sourceforge.plantuml {
  Object <|-- Demo1
  Demo1 *- Demo2
}

@enduml

PlantUML文本绘制类图,uml

包可以设置样式,也可以使用skinparam packageStyle设置为默认样式。

@startuml
scale 750 width
package foo1 <<Node>> {
  class Class1
}

package foo2 <<Rect>> {
  class Class2
}

package foo3 <<Folder>> {
  class Class3
}

package foo4 <<Frame>> {
  class Class4
}

package foo5 <<Cloud>> {
  class Class5
}

package foo6 <<Database>> {
  class Class6
}

PlantUML文本绘制类图,uml文章来源地址https://www.toymoban.com/news/detail-675333.html

到了这里,关于PlantUML文本绘制类图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PlantUML——类图(持续更新)

    在分析代码流程中,我们常常会使用到各种UML图,例如用例图、时序图和类图等,以往使用ProcessOn或亿图图示等工具,但是这些工具难以规范化,有没有一种用代码来生成图形的工具呢? 刚好在出差的晨会中机缘巧合下认识了PlantUML,这不赶快学习一波。该博文用于记录自己

    2024年02月09日
    浏览(38)
  • 【PlantUML】-类图-布局,如何改变元素位置

       PlantUML属于自动布局。掌握好,是一件利器,掌握不好,就会不知其所以然 。尤其在布局方面,因为它的布局可能会和你想的不太一样。本篇文章以例子为基础,简单地说几个在实际应用过程中摸索出来的原则。相信看完这篇文章(有示例),你就可以轻松驾驭PlantUML的

    2024年01月17日
    浏览(37)
  • 开源绘图工具plantUML入门教程(常用于画类图、时序图等)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 随着工作时间的增长,越发觉得用专业的图形(用例图,时序图,ER图等等)去准确表达想法是很重要的。比如针

    2024年02月05日
    浏览(39)
  • UML-类图和类图转化为代码

    提示:文章详细的讲解了类图的四种关系,以及每种关系如何转化为对应的代码。 依赖关系 是一种 使用关系 ,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。 依赖关系使用一个 带箭头的虚线 表示, 箭头指向

    2024年02月02日
    浏览(35)
  • 开源绘图工具 PlantUML 入门教程(常用于画类图、用例图、时序图等)

    一、类图 类的UML图示 定义能见度(可访问性) 类之间的关系 例子1: 或者 例子2: 或者 二、用例图 三、时序图 例子1: 例子2: 参考资料 官网: PlantUML - 类图 PlantUML - 用例图 PlantUML - 序列图 博客:https://blog.csdn.net/pleaseprintf/article/details/130656001

    2024年03月17日
    浏览(39)
  • Idea+PlantUML自动生成UML图(最详教学)

    目录  一、下载idea插件  二、安装Graphviz  三、idea结合Graphviz  四、PlantUML结合ChatGPT ​ 五、无ChatGPT 一、下载idea插件         idea从 FIle--Settings--Plugins--Marketplace 进入到插件下载界面,搜索PlantUML,点击\\\"install\\\"下载最上面的两个插件PlantUML Integration和PlantUML Parser,速度可能

    2024年02月15日
    浏览(50)
  • UML--类图的表示

    1.1 访问属性 + : public - : private # : protected 1.2 接口与抽象类 斜体 表示抽象类和抽象方法 Interface 类表示接口 1.3 类图示意 Mclass - val: int + getVal(): int 2.1 实现关系 空心三角形和虚线组成 B实现A,则三角形尖尖朝向A,在三角形底边引一条虚线再连接B。 2.2 泛化关系 is a 关系, 继承关系

    2024年02月05日
    浏览(49)
  • UML的类图规则

    public:+号 private:-号 protected:#号 类图多重关系: 泛化关系: 概念:也就是继承关系。 表示方式:用带空心三角形的直线来表示。 例子:动物和猫,人和老师 关联关系: 概念:用于表示一类对象与另一类对象之间的联系。 子关系: 双向关联: 表示方式:一条直线 例子:客

    2024年02月13日
    浏览(43)
  • UML 类图

    用动物园的类图结构来举例,先抽象化动物类如图所示: 一个类图包括类名、属性和行为,类名不用解释,在介绍属性和行为前,先了解一下访问权限: ‘ - ’ private:只有类内部的成员才能访问 ‘ + ’ public:类内部和类外部都能访问 ‘ # ’ protected:类内部和它的子类才

    2024年01月20日
    浏览(44)
  • UML类图学习

    第一层表示类名(斜体表示抽象类) 第二层表示该类属性和字段 第三层表示该方法 注意:属性、字段或方法前面+表示Public -表示Private #表示protected,如果是静态的可以在前面加上static。 抽象类: 普通类: 第一层表示接口名称。 第二层表示接口方法。 还有一种方法是棒棒

    2024年01月23日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包