Частный вложенный класс Java в диаграмме UML
У меня есть вопрос относительно 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. Если классификатор (класс) также вложен в другой класс, класс вложенности играет роль пространства имен. В этом случае вложенные классы скрыты (private) в пространстве имен контекста. это означает, что ваша диаграмма неявно определяет частное определение внутреннего класса.
здесь является частью определения из структурированных классификаторов раздела UML-надстройки:
"Класс действует как пространство имен для различных типов классификаторов, определенных в его области, включая классы. Вложение
классификаторы ограничивают видимость классификатора в пределах пространства имен содержащего класса и используются для
причины скрытия информации. Вложенные классификаторы используются как любой другой классификатор в содержащем классе.
Ответ 2
Прежде всего: у вас есть что-то в коде и просят представление UML. Но, ИМХО, вы должны смотреть на это наоборот: как эта идея UML может быть представлена в коде. (Некоторые языки программирования даже не предлагают частные вложенные классы...).
Как для частных вложенных классов: я предлагаю использовать композицию. Он сильнее, чем Ассоциация, но не настолько силен, как наследование. И композиционный класс не может существовать без его композитора. Практически точно частный вложенный класс.
Рисунок берется из http://www.uml-diagrams.org/association.html:
![enter image description here]()
Ответ 3
Чтобы указать, что ваш внутренний класс является наиболее подходящим для меня, это использовать символ, как показано ниже, но, конечно, в этом случае вы пропустите внутреннюю структуру вашего внутреннего класса. ![enter image description here]()