JavaRush/Java блог/Архив info.javarush/Как правильно провести инициализацию
Kalter
0 уровень

Как правильно провести инициализацию

Статья из группы Архив info.javarush
участников
День добрый

При написании игры встретился с проблемой инициализации двух классов

Проблема выглядит так:
  • При создании класса A передаём в конструктор экземпляр класса B
  • При создании класса B передаём в конструктор экземпляр класса A
То есть получается замкнутый круг. Ниже приведён код, отражающий эту проблему: class A { private B mB; A(B b) { mB = b; } } class B { private A mA; B(A a) { mA = a; } } class C { C() { A a = //... B b = //... } } Проблема возникает в конструкторе класса C: как инициализировать переменные a и b? Конечно, можно передать в один конструктор null, а затем закончить инициализацию после вызовов конструкторов, но это уже быдлокод. Тем более, что, если в такой зависимости не 2, а, например, 3 класса?

Так вот: если какое-нибудь решение данной проблемы?
Комментарии (1)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Sant9Iga
Уровень 41
23 июля 2014, 19:02
лучше так не делать. Единственно лучше вынести из конструктора инциализацию этих полей. и задавать их с помощью геттеров