UML图中的私有嵌套Java类

gui*_*eak 15 java uml class-diagram nested-class

我有一个关于UML的问题.我有一个类,它只包含一个带有私有访问修饰符的内部类 - 无法从其他任何地方访问...通常为了呈现内部类关系,我可以使用像(here InnerOddIterator)这样的(+)关系:

在此输入图像描述

(摘自http://www.uml-diagrams.org/nested-classifier.html)

我没有找到任何关于如何明确强调这个类是私有的信息.你知道这种方法是否存在吗?如果是的话,我会感激你在这里给我一些链接吗?

为了保持清晰,示例代码:

public class DataStrucure {
     // fields, methods, etc
     private class InnerOddIterator{
          // ... 
     };
}
Run Code Online (Sandbox Code Playgroud)

小智 6

从UML的角度来看.如果classifier(Class也)嵌套在其他类中,则嵌套类扮演命名空间的角色.在这种情况下,嵌套类在上下文命名空间中隐藏(私有).这意味着,您的图表隐式定义了私有内部类定义.

这是UML上层结构部分结构化分类器的定义的一部分:

"A类充当命名空间各种分类的其范围内定义的,包括类.分类器的嵌套限制了分类器的可视性,包含类的命名空间的范围之内,并用于信息隐藏原因.嵌套分类器的使用方式与包含类中的任何其他分类器一样."


Mar*_*ser 5

首先:您的代码中有一些内容并要求使用 UML 表示。但是,恕我直言,您应该反过来看:如何在代码中表示 UML 想法。(一些编程语言甚至不提供私有嵌套类......)。

至于私有嵌套类:我建议使用 Composition。它比关联强,但不如继承强。没有它的作曲家,组合类就不能存在。几乎完全是一个私有的嵌套类。

该图取自http://www.uml-diagrams.org/association.html在此处输入图片说明

  • “有些编程语言甚至不提供私有嵌套类” - 好点,对吧......我添加了 Java 标签以使其更具体 (2认同)