用于继承的 PlantUML 脚本

PlantUML script for inheritance

每当我从同一个接口扩展两个接口时,在图中,它会创建单独的箭头。我只想要一个带有这样分支的箭头。 PlantUML 中是否有任何脚本可以执行此操作?

PlantUML 使用的工具集 - GraphViz - 主要用于绘制图形(即节点和边);因此个人实现关系。

虽然这样显示实现有时对于描述界面层次结构很有用,但图表可能会很快变成 "rat's nest" 关系,可能会掩盖更大的图景。

您可能会考虑更喜欢使用简写 "Lollipop" 表示法来指示接口的实现。例如,

如果您想在同一张图中显示界面细节,布局有时会有点棘手。生成上述内容的脚本如下:

@startuml
together {
   interface Widget {
     callFred()
     callBarney()
   }

   class A
   class B
   class C
}

Widget ()- A
Widget ()- B
Widget ()- C
@enduml

如果您只希望两个继承实体共享一个箭头,您可以将第二个连接到连接第一个实体与其泛化的直线:

class Entity
class Generalization
class OtherEntity
Generalization <|-- Entity
(Entity, Generalization) -- OtherEntity


不幸的是,如果您尝试更多,它会生成更多行,因此不起作用。例如

class Entity
class Generalization
class OtherEntity
Generalization <|-- Entity
(Entity, Generalization) -- OtherEntity

class AnotherEntity
(Entity, Generalization) -- AnotherEntity

给出了这个:

这不是我们想要的。