使用PlantUML绘制类图

栏目: 编程工具 · 发布时间: 5年前

内容简介:本文基于sublime的PlantUML插件绘制类图。如需了解插件安装,请点击使用UML表示一个类,主要由三部分组成。如图所示,表示

本文基于sublime的PlantUML插件绘制类图。如需了解插件安装,请点击 Sublime安装PlantUML插件

类的UML表示

使用UML表示一个类,主要由三部分组成。 类名属性方法 。其中 属性方法 的访问修饰符用 -#+ 表示 privateprotectedpublic

使用PlantUML绘制类图

如图所示,表示 A 类有一个 private 属性, protected 构造函数和 public 方法。

@startuml

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

@enduml
复制代码

类的关系

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

泛化

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

继承

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

@startuml

    class A
    abstract B

    ' A 继承 B
    A --|> B

@enduml
复制代码
使用PlantUML绘制类图

实现

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

@startuml

    class A
    interface C

    ' A 实现 C
    A ..|> C

@enduml
复制代码
使用PlantUML绘制类图

依赖

类之间,最弱的关联方式。常用于在A类的方法中使用B类的对象作为参数、局部变量或者对B类静态方法的调用。

PlantUML用 ..> 表示依赖关系。虚线和箭头的抽象表示,指向谁,即依赖谁。

@startuml

    class A
    class B

    ' A 依赖 B
    A ..> B

@enduml
复制代码
使用PlantUML绘制类图

关联

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

单向关联

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

@startuml

	class A{
		- B b
	}
	class B

	' A 关联 B
	A --> B

@enduml
复制代码
使用PlantUML绘制类图

双向关联

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

@startuml

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

	' A 关联 B
	A -- B

@enduml
复制代码
使用PlantUML绘制类图

自关联

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

使用PlantUML绘制类图
@startuml

	class A{
		- A a
	}
	

	' A 关联 A
	A --> A

@enduml
复制代码

聚合

在关联关系的基础上,延伸出聚合关系,强的关联关系,表示 has-a 关系。整体与部分的关系,部分不依赖于整体,可独立存在。常用于成员变量。

如;汽车和轮胎的关系,轮胎可作为独立的商品出售。

PlantUML用 o-- 表示聚合关系。实线和空心菱形的抽象表示,指向谁,表示谁是整体。

@startuml

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

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

@enduml
复制代码
使用PlantUML绘制类图

图中数字 14 也表示一对多关联。 NN 同理。

组合

在关联关系的基础上,延伸出另外一种关联关系,组合关系,表示 contains-a 关系。整体与部分的关系,部分依赖于整体,不可独立存在。常用于成员变量。

如:身体和动作的关系。

PlantUML用 *-- 表示聚合关系。实线和实心菱形的抽象表示,指向谁,表示谁是整体。

@startuml

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

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

@enduml
复制代码
使用PlantUML绘制类图

PlantUML排版

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

default

@startuml

class A1
class B1

A1 --> B1

class A2
class B2
A2 <-- B2

@enduml
复制代码
使用PlantUML绘制类图

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

up

@startuml

class A1
class B1

A1 -up-> B1

class A2
class B2
A2 <-up- B2

@enduml
复制代码
使用PlantUML绘制类图

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

down

@startuml

class A1
class B1

A1 -down-> B1

class A2
class B2
A2 <-down- B2

@enduml
复制代码
使用PlantUML绘制类图

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

left

@startuml

class A1
class B1

A1 -left-> B1

class A2
class B2
A2 <-left- B2

@enduml
复制代码

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

使用PlantUML绘制类图

right

@startuml

class A1
class B1

A1 -right-> B1

class A2
class B2
A2 <-right- B2

@enduml
复制代码
使用PlantUML绘制类图

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

结网

结网

王坚 / 人民邮电出版社 / 2010-12-10 / 59.00元

本书以如何创建、发布、推广互联网产品为主线,介绍了互联网产品经理的工作内容以及应对每一部分工作所需的方法和工具。为用户创造价值是产品经理的第一要务,产品经理的工作是围绕用户及具体任务展开的,本书丰富的案例和透彻的分析道出了从发现用户到最终满足用户这一过程背后的玄机。 本书面向现在正在从事及未来将要从事互联网相关工作的创业者和产品经理,也可以作为互联网产品策划人员或相关专业学生的参考书。新版完......一起来看看 《结网》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换