Пружинно-транзитивная инъекция зависимостей - PullRequest
0 голосов
/ 04 апреля 2010

если я внедряю рекурсивную зависимость через конструктор, то это дает мне исключение, а если я использую setter, то это не так. Почему это?

1 Ответ

3 голосов
/ 04 апреля 2010

Вы имеете в виду, что у A есть B, а у B есть A, и вы пытаетесь внедрить их обоих друг в друга? Логично, что поведение, которое вы описываете, имеет смысл.

A a = new A()
B b = new B()
a.setB( b )
b.setA( a )

выглядит хорошо, но как это должно выглядеть?

A a = new A( b )
B b = new B( a )

Независимо от того, как вы переписываете вторую группу, вы не можете создать A, который зависит от B, с помощью конструктора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...