我有一些内部私有类,我不确定将它们放在我的类图中的哪个位置。他们应该在外部班级还是自己?
5 回答
您可以在外部类的一侧使用containment
带有标志的外部表示它们。+
你可以在这里找到它。
UML 语言和您使用的任何建模工具之间总是存在差异,因此实现某事的最佳方式取决于工具。
在 UML 中,类具有可见性/范围,就像类成员一样。换句话说,UML 允许私有类,但这并不意味着您的工具可以显示该类的“私有性”。
UML 还允许类包含其他类。换句话说,类可以充当包。同样,该工具的显示方式各不相同。
从纯粹的 UML 角度来看,我建议将内部类包含在外部类中,并标记为私有。
在图表中,如果您的工具未显示命名空间,您可以调整外部类的大小并将内部类放在其中。如果您的工具允许调整大小,那就是。
最后,除非您总共只有八个或十个类,否则我建议您在单独的图中显示内部类。
UML 用于设计或描述复杂的体系结构。我认为在 UML 类图中提及内部类并不重要。如果您在接口级别设计您的系统,那么您的实现和私有类以及所有私有方法都是失焦的。您的图表应该只包含公共方法 = 接口方法。
我认为您不能在 UML 类图中的另一个类中拥有一个类。您在 UML 中呈现它们的方式应该反映它们与父类的结构关系。如果它们是为了方便而在内部创建的,您可以将它们连接起来。如果它们具有包含或聚合关系,则 UML 具有适当的语法。在任何情况下,内部类都是特定于语言的,因此 UML 对它们有任何明确的支持会很奇怪(而且确实是错误的设计)。
可能相关的外部讨论: http: //www.coderanch.com/t/99318/patterns/Inner-Class-UML