在类图中,是否有一种方法可以指定一个类是另一个类的内部类?
还是将其视为纯实现选择?
在类图中,可通过嵌套一个类到另一个类来指定它是该类的内部类。这通常被认为是实现细节的选择。
还是将其视为纯实现选择?
在类图中,可通过嵌套一个类到另一个类来指定它是该类的内部类。这通常被认为是实现细节的选择。
由于UML不应直接与实现相关,我会使用命名约定,例如:
OuterClass vs OuterClass::InnerClass
如果你希望对UML进行反向工程或者代码生成,我想不同的工具会使用不同的技巧(如果它们支持这个功能的话)。
使用Enterprise Architect(EA v7)进行一些反向工程的快速测试证实,当处理一些带有公共内部类的C#代码时,它们使用上述的InnerClass::OuterClass
语法。
对于这种情况,您需要单独的图表来显示类的内部结构或处理过程。
通常,这些额外的图表是活动图,用于显示处理过程。有时每个方法都会有一个。您还可以有一个内部序列图,显示API交互。
没有理由不能有额外的类图来显示类的内部结构。
或者您可以将内部类完全包含在外部类中,一个矩形在另一个矩形内部。