内容简介:本文基于sublime的PlantUML插件绘制类图。如需了解插件安装,请点击使用UML表示一个类,主要由三部分组成。如图所示,表示
本文基于sublime的PlantUML插件绘制类图。如需了解插件安装,请点击 Sublime安装PlantUML插件
类的UML表示
使用UML表示一个类,主要由三部分组成。 类名
、 属性
、 方法
。其中 属性
和 方法
的访问修饰符用 -
、 #
、 +
表示 private
、 protected
、 public
。
如图所示,表示 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用 ..|>
表示实现关系。虚和三角形的抽象表示,指向谁,即实现谁。
@startuml class A interface C ' A 实现 C A ..|> C @enduml 复制代码
依赖
类之间,最弱的关联方式。常用于在A类的方法中使用B类的对象作为参数、局部变量或者对B类静态方法的调用。
PlantUML用 ..>
表示依赖关系。虚线和箭头的抽象表示,指向谁,即依赖谁。
@startuml class A class B ' A 依赖 B A ..> B @enduml 复制代码
关联
关联关系,即对象之间的引用关系。常使用类的属性表达。
单向关联
B类作为A类的属性,表示A类与B类有关联。 PlantUML用 -->
表示单向关联。实线线和箭头的抽象表示,指向谁,即关联谁。
@startuml class A{ - B b } class B ' A 关联 B A --> B @enduml 复制代码
双向关联
B类作为A类的属性同时,A类也是B类的属性,表示双向关联。 PlantUML用 --
表示双向关联。或者用 <-->
。
@startuml class A{ - B b } class B{ - A a } ' A 关联 B A -- B @enduml 复制代码
自关联
A类关联A类自身。常见于单例模式。
@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 复制代码
图中数字 1
和 4
也表示一对多关联。 N
对 N
同理。
组合
在关联关系的基础上,延伸出另外一种关联关系,组合关系,表示 contains-a
关系。整体与部分的关系,部分依赖于整体,不可独立存在。常用于成员变量。
如:身体和动作的关系。
PlantUML用 *--
表示聚合关系。实线和实心菱形的抽象表示,指向谁,表示谁是整体。
@startuml class Body{ - List<Action> actions } class Action ' Body 关联 Action Body "1" *-- "N" Action @enduml 复制代码
PlantUML排版
相比较其他的UML软件或插件。PlantUML的优势在于,存储的是文本文件,可以方便的进行团队协作以及高度可定制化的依赖关系。但是,最大的缺点在于,排版是通过插件自动生成的,排版效果不尽人意。因此,PlantUML提供四个关键字 up
down
left
right
。指定类与类之间的相对关系。
default
@startuml class A1 class B1 A1 --> B1 class A2 class B2 A2 <-- B2 @enduml 复制代码
箭头向左时,被指向对象在上; 箭头向右时,被指向对象在下。
up
@startuml class A1 class B1 A1 -up-> B1 class A2 class B2 A2 <-up- B2 @enduml 复制代码
使用up时,被指向对象在上。
down
@startuml class A1 class B1 A1 -down-> B1 class A2 class B2 A2 <-down- B2 @enduml 复制代码
使用down时,被指向对象在下。
left
@startuml class A1 class B1 A1 -left-> B1 class A2 class B2 A2 <-left- B2 @enduml 复制代码
使用left时,被指向对象在左。
right
@startuml class A1 class B1 A1 -right-> B1 class A2 class B2 A2 <-right- B2 @enduml 复制代码
使用right时,被指向对象在右。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
jQuery实战
Bear Bibeault、Yehuda Katz / 陈宁 / 人民邮电出版社 / 2009.1 / 49.00元
《jQuery实战》全面介绍jQuery知识,展示如何遍历HTML文档、处理事件、执行动画以及给网页添加Ajax。书中紧紧地围绕“用实际的示例来解释每一个新概念”这一宗旨,生动描述了jQuery如何与其他工具和框架交互以及如何生成jQuery插件。jQuery 是目前最受欢迎的JavaScript/Ajax库之一,能用最少的代码实现最多的功能。 点击链接进入新版: jQuery......一起来看看 《jQuery实战》 这本书的介绍吧!