gpt4 book ai didi

class - PlantUML:如何控制同等级类的对齐?

转载 作者:行者123 更新时间:2023-12-04 17:36:41 24 4
gpt4 key购买 nike

我最近发现 Plantuml 可以将所有相同等级的类对齐。然后每个类(class)都以与该等级对应的不可见线为中心

例子:

example 1

在这里,第 1 类、第 2 类、第 3 类和第 4 类具有相同的等级,并围绕该等级的一条不可见线居中。

在像这样的简单图表上,问题不大,但在更复杂的图表中会有点尴尬

例子:

    @startuml

skinparam linetype ortho

namespace namespace1 {

class ParentClass{
something
something
something
something
something
something
something
something
something
something
something
something
something
something
something
something
something
}

ParentClass -- Class1
ParentClass -- Class2
ParentClass -- Class3
ParentClass -- Class4


class Class1{
something
something
something
something
something
somethins
something
something
something
something
something
something
something
something
something
something
something
something
something
something
something
something
something
}

class Class2{
something
something
something
something
something
something
something

}

class Class3{
something
something
something
something
}

class Class4{
something
something
}

}

namespace namespace2 {
OtherParentClass -- Class1
OtherParentClass -- Class2

class Class1{
something
}

class Class2{
something
}

}
@enduml

Imgur

在这个例子中的 namespace2 中,子类离父类真的很远。

有没有办法更好地控制它?理想情况下,我希望能够将所有相同等级的类集中到顶部,甚至能够重置不可见排名线的位置(以便在 namespace2 中 Class1、Class2 的位置独立于命名空间中的类1)

最佳答案

我找不到一种方法来控制那条隐形等级线的位置,或者相对于它的对齐方式。
我学到了什么:排名是graphviz的一个特性,用于为plantuml做图形布局。有一些技巧可以强制在 graphviz 中进行布局,但它们不能在 Plantuml( example 1example 2 )中使用,但在 Plantuml 中无法使用这些变通方法。
您可以更改连接线长度,这实际上将元素推到了不同的等级。这并不是您问题的真正解决方案,但在某些情况下可能是一种解决方法。
所以如果你使用 ---在 namespace1 和 -- 中在 namespace2 中,来自 namespace2 的类将高于来自 namespace1 的类。例如,您还可以对除 namespace1::Class1 之外的所有类使用短连接器。
Test with longer lines in namespace1
我根据 this answer to: How to align blocks in PlantUML class diagrams? 发现了这一点

关于class - PlantUML:如何控制同等级类的对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56447433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com