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
лучше так не делать. Единственно лучше вынести из конструктора инциализацию этих полей. и задавать их с помощью геттеров