Закрытый атрибут обычно моделируется как однонаправленная ассоциация (даже если навигация может быть достигнута и другими способами, кроме принадлежащего атрибута).
Ваш исходный код определяет атрибут frame
, поэтому вы должны смоделировать ассоциацию между ClassA
и JFrame
.
Тогда класс JFrame
имеет операцию add
для объекта ClassB
. Это имеет смысл, только если JFrame
имеет ассоциацию с ClassB
.
Наконец, ClassA
создает новый экземпляр ClassB
. Этот факт можно визуализировать с помощью отношения «создать» (пунктирная открытая стрелка).
Никаких других связей между ClassA
и ClassB
не существует. Поскольку мы не знаем, является ли атрибут JFrame
закрытым, для ClassA
может даже оказаться невозможным доступ к ClassB
, даже если он его создал.
Композиция может существовать между JFrame
и ClassB
, но ваш Исходный код не дает достаточного контекста для этого решения. Между ClassA и ClassB нет никакого смысла, поскольку они даже не связаны, будь то посредством AssociationClass или обычной ассоциации.