网站建设工作室wp主题模板,游戏推广渠道,公司网站建设 邮箱,小程序自己做网站记录下文本绘制类图的语法 参考 https://juejin.cn/post/6844903731293585421
类的UML表示
使用UML表示一个类#xff0c;主要由三部分组成。类名、属性、方法。其中属性和方法的访问修饰符用 - 、# 、 表示 private、protected、public。 如图所示#xff0c;表示A类有一个…记录下文本绘制类图的语法 参考 https://juejin.cn/post/6844903731293585421
类的UML表示
使用UML表示一个类主要由三部分组成。类名、属性、方法。其中属性和方法的访问修饰符用 - 、# 、 表示 private、protected、public。 如图所示表示A类有一个private属性protected 构造函数和public方法。
startumlclass A{- String field A()# void method()
}单行备注
note right: 这是测试类 Aclass B{- String field B()# void method()
}多行备注
note left
Hello
World
end noteenduml类的关系
在面向对象语言中类的关系有很多种可以概括为三类泛化、依赖、关联。
泛化
泛化指父类跟子类的关系,表示is-a的关系。如父类是抽象类或普通类则这种关系叫继承。如父类是接口则这种关系叫实现。UML中继承和实现由不同的标记表示。
继承
PlantUML用 --| 表示继承关系。实线和三角形的抽象表示指向谁即继承谁。
startumlclass Aabstract B A 继承 BA --| Benduml实现
PlantUML用 …| 表示实现关系。虚和三角形的抽象表示指向谁即实现谁。
startumlclass Ainterface C A 实现 CA ..| Cenduml依赖B类作为A类的参数、局部变量、静态方法调用
类之间最弱的关联方式。常用于在A类的方法中使用B类的对象作为参数、局部变量或者对B类静态方法的调用。 PlantUML用 … 表示依赖关系。虚线和箭头的抽象表示指向谁即依赖谁。
startumlclass Aclass B A 依赖 BA .. Benduml关联对象间的引用关系
关联关系即对象之间的引用关系。常使用类的属性表达。
单向关联A类有B类属性
B类作为A类的属性表示A类与B类有关联。 PlantUML用 -- 表示单向关联。实线线和箭头的抽象表示指向谁即关联谁。
startumlclass A{- B b}class B A 关联 BA -- Benduml双向关联A、B类互相有对方属性
B类作为A类的属性同时A类也是B类的属性表示双向关联。 PlantUML用 – 表示双向关联。或者用–。
startumlclass A{- B b}class B{- A a} A 关联 BA -- Benduml自关联A类有A类的属性
A类关联A类自身。常见于单例模式。
startumlclass A{- A a} A 关联 AA -- Aenduml聚合学生之于班级
在关联关系的基础上延伸出聚合关系强的关联关系表示has-a关系。整体与部分的关系部分不依赖于整体可独立存在。常用于成员变量。 如汽车和轮胎的关系轮胎可作为独立的商品出售。 PlantUML用 o-- 表示聚合关系。实线和空心菱形的抽象表示指向谁表示谁是整体。
startumlclass Car{- ListWheel wheels}class Wheel Car 关联 WheelCar 1 o-- 4 Wheelenduml图中数字1和4也表示一对多关联。N对N同理。
组合翅膀之于鸟
在关联关系的基础上延伸出另外一种关联关系组合关系表示contains-a关系。整体与部分的关系部分依赖于整体不可独立存在。常用于成员变量。 如身体和动作的关系。 PlantUML用 *-- 表示聚合关系。实线和实心菱形的抽象表示指向谁表示谁是整体。
startumlclass Body{- ListAction actions}class Action Body 关联 ActionBody 1 *-- N Actionenduml排版
相比较其他的UML软件或插件。PlantUML的优势在于存储的是文本文件可以方便的进行团队协作以及高度可定制化的依赖关系。但是最大的缺点在于排版是通过插件自动生成的排版效果不尽人意。因此PlantUML提供四个关键字 up、down、left、right。指定类与类之间的相对关系。
default
箭头向左时被指向对象在上 箭头向右时被指向对象在下。
startumlclass A1
class B1A1 -- B1class A2
class B2
A2 -- B2endumlup
使用up时被指向对象在上。
startumlclass A1
class B1A1 -up- B1class A2
class B2
A2 -up- B2endumldown
使用down时被指向对象在下。
startumlclass A1
class B1A1 -down- B1class A2
class B2
A2 -down- B2endumlleft
使用left时被指向对象在左。
startumlclass A1
class B1A1 -left- B1class A2
class B2
A2 -left- B2endumlright
使用right时被指向对象在右。
startumlclass A1
class B1A1 -right- B1class A2
class B2
A2 -right- B2enduml包
startumlpackage Classic Collections #yellow{Object |-- ArrayList
}package net.sourceforge.plantuml {Object |-- Demo1Demo1 *- Demo2
}enduml包可以设置样式也可以使用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
}