Я столкнулся с проблемой в Java, но я думаю, что это вопрос об ООП в целом. Это должно быть довольно распространенной потребностью, поэтому я надеюсь, что есть решение, о котором я просто не знаю.
Что вы делаете, когда вам нужно инициализировать поля объекта в конструкторе, но эти объекты нуждаются в этом в качестве параметра?
Так вот, что вы не можете сделать:
public class SomeClass {
private SomeOtherClass foo;
public SomeClass (SomeOtherClass foo) {
this.foo = foo;
}
}
public class SomeOtherClass {
private SomeClass bar;
public SomeOtherClass() {
bar = new SomeClass(this);
}
}
Я не знаю ни о каком решении, кроме наличия метода init (), который выполняет всю инициализацию объекта, и вызова его после инициализации объекта SomeOtherClass в моей основной программе. Есть ли способ лучше? Или есть способ заставить метод SomeOtherClass (метод init ()) запускаться после завершения конструктора, не вызывая его явно?
Спасибо!