我尝试按第一个屏幕截图所示排列组件和包。有没有机会这样做(截图1)

请在此处找到我当前的方法(屏幕截图 2)
和这里的 uml 脚本:
@startuml
package "packageA" {
[componentA]
}
package "packageB" {
[componentB1] - [componentB2]
[componentB2]
}
package "packageC" {
[componentC1] - [componentC2]
[componentC2]
}
package "packageD" {
[componentD]
}
componentA --> componentB1
componentA --> componentC1
componentB2 -right-> [componentD]
componentC2 -right-> [componentD]
@enduml
Run Code Online (Sandbox Code Playgroud)
使用从左到右的方向,并忽略包中的明确方向,您可以大致得到您想要的内容:
@startuml
left to right direction
skinparam package {
backgroundColor Gray
}
skinparam component {
backgroundColor Gold
}
package "packageA" {
[componentA]
}
package "packageB" {
[componentB1] -- [componentB2]
}
package "packageC" {
[componentC1] -- [componentC2]
}
package "packageD" {
[componentD]
}
componentA --> componentB1
componentA --> componentC1
componentB2 --> [componentD]
componentC2 --> [componentD]
@enduml
Run Code Online (Sandbox Code Playgroud)
垂直对齐不容易控制。我相信问题来自组件之间的链接,而可能有人尝试调整包。
在这方面,从上到下的对齐可以更好地居中。在某些情况下也有帮助的是添加一些-[hidden]->链接,这些链接似乎也在对齐/居中考虑在内,但在这种相当平坦的情况下,它并没有太大变化。