Q:

Обращение к экземпляру класса

Вопрос по теории Java. Есть два класса: класс А реализует JDesktopPane и класс В, реализует JInternalFrame. Класс В не внутренний и не вложенный относительно класса А. Как обратиться к экземпляру класса А из класса В? Сейчас я это реализую передачей экземпляра А в конструктор В. Это оптимальный способ или есть более удобные? 
Я к чему спрашиваю, предполагается ситуация, когда из класса В будет создаваться экземпляр класса С, а из него - экземпляр класса D. И так несколько раз. И из экземпляра класса, к примеру, Z я хочу получить доступ к экземпляру А. Значит ссылка на него должна передаваться каждый раз из конструктора в конструктор? 
Спасибо.

A:

Немного дополню ответ @Igor.
Да, это нормально. В вашем случае тип A является зависимостью для типа B.
Как уже было упомянуто, через конструктор обычно передаются обязательные зависимости. Необязательные зависимости, как правило, устанавливаются через свойства/set-методы.
В более сложных сценариях вы можете получать экземпляры типа A не напрямую, а посредством какого-то объекта (например, фабрики). В таком случае встает вопрос об обращении к самой фабрике -- способы решения те же самые.
При этом сам тип B может являться зависимостью для других типов и должен передаваться (внедряться) точно так же. В сложных приложениях такие цепочки могут быть достаточно большими, поэтому используют контейнеры, облегчающие управление зависимостями.
Полезно будет почитать про:

инверсию управления (inversion of control, IoC)
внедрение зависимостей (dependency injection, DI)
контейнеры (IoC или DI контейнеры)

Источников множество. Можно начать с этого сайта, продолжить Википедией, Гуглом и блогами.

