UML 图中的私有嵌套 Java 类

2022-09-02 01:49:55

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

enter image description here

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

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

只是为了保持清晰,一个示例代码:

public class DataStrucure {
     // fields, methods, etc
     private class InnerOddIterator{
          // ... 
     };
}

答案 1

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

以下是UML上层结构分类器定义的一部分:

“类充当在其范围内定义的各种分类器(包括类)的命名空间。分类器的嵌套将分类器的可见性限制在包含类的命名空间范围内,并用于信息隐藏的原因。嵌套分类器的使用方式与包含类中的任何其他分类器一样。


答案 2

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

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

该图取自 http://www.uml-diagrams.org/association.htmlenter image description here


推荐