У меня есть 2 класса, которые полагаются друг на друга, и оба они имеют свои соответствующие интерфейсы. Однако я не могу настроить конструктор на обоих классах чисто. Короче говоря, один класс должен быть создан до того, как будет создан экземпляр другого класса.Явная взаимозависимость Java с интерфейсами, установленными в конструкторе
Class A implements IA {
public A(IB b) {
myBclass = b;
}
private IB myBclass;
}
Class B implements IB {
public B(IA a) {
myAclass = a;
}
private IA myAclass;
}
static void main(String[] args) {
A a = new A(null);
B b = new B(a);
a.setB(b); // how can I avoid doing this
}
Я хотел бы избежать установки переменных-членов вне конструктора.
Вам не нужно было убедиться, что A's B на самом деле это B? В Main можно было бы сделать 'IB b = new B (новый A())), что приведет к B-> A-> B ', где B! = B' ... – Fildor
@Fildor Да , вполне возможно. Поэтому вы, вероятно, не захотите этого делать. – khelwood
Да, конечно _I_ не будет, но может быть, какой-нибудь другой Дев. Вы порекомендовали бы просто оставить комментарий, чтобы не делать этого для других разработчиков или применять его в коде, например, бросая какое-то исключение? – Fildor