День добрый

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

Проблема выглядит так:
  • При создании класса 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 класса?

Так вот: если какое-нибудь решение данной проблемы?