Вопрос

Есть ли в диаграмме классов способ указать, что класс является внутренним классом другого класса?

Или это считается чистым выбором реализации?

Это было полезно?

Решение

Подумайте об использовании отношения вложения (строка с '+' в кружке на родительском конце).

Другие советы

Поскольку UML не должен напрямую зависеть от реализации, я бы использовал соглашение об именах, например:

OuterClass vs OuterClass::InnerClass

Я бы подумал, если вы надеетесь провести обратный инжиниринг или генерацию кода в / из UML, чтобы разные инструменты использовали разные методы (если они вообще их поддерживают).

Быстрый тест некоторых методов обратного инжиниринга с использованием Enterprise Architect (EA v7) подтверждает, что они используют приведенный выше синтаксис InnerClass :: OuterClass при обработке некоторого C # с открытым внутренним классом.

Для такого рода вещей у вас есть отдельные диаграммы, показывающие внутреннюю структуру или обработку класса.

Как правило, эти дополнительные диаграммы являются диаграммами активности, чтобы показать обработку. Иногда по одному на метод. У вас также может быть внутренняя диаграмма последовательности, показывающая взаимодействия API.

Нет причин, по которым у вас не может быть дополнительной диаграммы классов для отображения внутренней структуры класса.

Или вы можете показать внутренний класс, полностью заключенный во внешний класс, один прямоугольник внутри другого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top