UML - 如何将 class 图与子 class 垂直对齐
UML - How to align class diagrams with child classes verticaly
在附带的 UML 图中有 5 类,我想知道 类 A、B 和 C 的顶部如何垂直对齐,而子 类 保持不变对齐。请在下面找到我的 UML 代码和屏幕截图。
非常感谢您的支持! :)
目前的样子:
它应该是什么样子(油漆编辑):
UML - 代码:
@startuml TestClassDiagram
scale 800 width
skinparam SameClassWidth true
skinparam ClassFontSize 15
class classA {
{field} - attribute1 : int
{field} - attribute2 : int
{method} + method1(void)
{method} + method2(void)
{method} + method3(void)
{method} + method4(void)
{method} + method5(void)
}
class classB {
{field} - attribute1 : int
{field} - attribute2 : int
{method} + method1(void)
{method} + method2(void)
}
class classBchild {
{method} + method1(void)
}
class classC {
{field} - attribute1 : int
{field} - attribute2 : int
{field} - attribute3 : int
{field} - attribute4 : int
{method} + method1(void)
{method} + method2(void)
{method} + method3(void)
{method} + method4(void)
{method} + method5(void)
}
class classCchild {
{method} + method1(void)
}
classB <|-- classBchild
classC <|-- classCchild
@enduml
PlantUML 中没有对齐 classes 的功能(目前)。
如果我们在所有元素之间添加箭头,就可以清楚地看到 PlantUML 试图做什么:
它只是从中间对齐所有图表。
使用这个,我们可以创建一个 hack,通过用额外的换行符填充 class 定义,直到它们大小相同, 有点 达到你想要的结果:
@startuml
skinparam {
SameClassWidth true
ClassFontSize 15
}
class A as "classA" {
{field} - attribute1 : int
{field} - attribute2 : int
__
{method} + method1(void)
{method} + method2(void)
{method} + method3(void)
{method} + method4(void)
{method} + method5(void)
}
class B as "classB" {
{field} - attribute1 : int
{field} - attribute2 : int
__
{method} + method1(void)
{method} + method2(void)
}
class Bc as "classBchild" {
{method} + method1(void)
}
class C as "classC" {
{field} - attribute1 : int
{field} - attribute2 : int
{field} - attribute3 : int
{field} - attribute4 : int
{method} + method1(void)
{method} + method2(void)
{method} + method3(void)
{method} + method4(void)
{method} + method5(void)
}
class Cc as "classCchild" {
{method} + method1(void)
}
B <|-- Bc
C <|-- Cc
@enduml
在附带的 UML 图中有 5 类,我想知道 类 A、B 和 C 的顶部如何垂直对齐,而子 类 保持不变对齐。请在下面找到我的 UML 代码和屏幕截图。
非常感谢您的支持! :)
目前的样子:
它应该是什么样子(油漆编辑):
UML - 代码:
@startuml TestClassDiagram
scale 800 width
skinparam SameClassWidth true
skinparam ClassFontSize 15
class classA {
{field} - attribute1 : int
{field} - attribute2 : int
{method} + method1(void)
{method} + method2(void)
{method} + method3(void)
{method} + method4(void)
{method} + method5(void)
}
class classB {
{field} - attribute1 : int
{field} - attribute2 : int
{method} + method1(void)
{method} + method2(void)
}
class classBchild {
{method} + method1(void)
}
class classC {
{field} - attribute1 : int
{field} - attribute2 : int
{field} - attribute3 : int
{field} - attribute4 : int
{method} + method1(void)
{method} + method2(void)
{method} + method3(void)
{method} + method4(void)
{method} + method5(void)
}
class classCchild {
{method} + method1(void)
}
classB <|-- classBchild
classC <|-- classCchild
@enduml
PlantUML 中没有对齐 classes 的功能(目前)。
如果我们在所有元素之间添加箭头,就可以清楚地看到 PlantUML 试图做什么:
它只是从中间对齐所有图表。
使用这个,我们可以创建一个 hack,通过用额外的换行符填充 class 定义,直到它们大小相同, 有点 达到你想要的结果:
@startuml
skinparam {
SameClassWidth true
ClassFontSize 15
}
class A as "classA" {
{field} - attribute1 : int
{field} - attribute2 : int
__
{method} + method1(void)
{method} + method2(void)
{method} + method3(void)
{method} + method4(void)
{method} + method5(void)
}
class B as "classB" {
{field} - attribute1 : int
{field} - attribute2 : int
__
{method} + method1(void)
{method} + method2(void)
}
class Bc as "classBchild" {
{method} + method1(void)
}
class C as "classC" {
{field} - attribute1 : int
{field} - attribute2 : int
{field} - attribute3 : int
{field} - attribute4 : int
{method} + method1(void)
{method} + method2(void)
{method} + method3(void)
{method} + method4(void)
{method} + method5(void)
}
class Cc as "classCchild" {
{method} + method1(void)
}
B <|-- Bc
C <|-- Cc
@enduml