UML:类图中的内部类

17
在类图中,是否有一种方法可以指定一个类是另一个类的内部类?
还是将其视为纯实现选择?
在类图中,可通过嵌套一个类到另一个类来指定它是该类的内部类。这通常被认为是实现细节的选择。
4个回答

12
考虑使用嵌套关系(在父元素末尾带有一个圆圈中的“+”符号的行)。

我在StarUML中找不到这个链接。我有什么遗漏吗? - fIwJlxSzApHEZIl
截至2019年,它是工具箱、包部分和包含关系。不过,在那个时候可能还不存在。 - Cromax

7

由于UML不应直接与实现相关,我会使用命名约定,例如:

OuterClass vs OuterClass::InnerClass

如果你希望对UML进行反向工程或者代码生成,我想不同的工具会使用不同的技巧(如果它们支持这个功能的话)。

使用Enterprise Architect(EA v7)进行一些反向工程的快速测试证实,当处理一些带有公共内部类的C#代码时,它们使用上述的InnerClass::OuterClass语法。


我将使用Chimp提到的“嵌套关系”,但你的想法也很好,谢谢! - Barth

1

对于这种情况,您需要单独的图表来显示类的内部结构或处理过程。

通常,这些额外的图表是活动图,用于显示处理过程。有时每个方法都会有一个。您还可以有一个内部序列图,显示API交互。

没有理由不能有额外的类图来显示类的内部结构。


0

或者您可以将内部类完全包含在外部类中,一个矩形在另一个矩形内部。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接