2
먼저, 제 제목에 더 구체적인 문구를 표시하지 못해 죄송합니다.상속받은 Guice 주사
public abstract class A {
// dependencies
private Client client;
@Inject
public A(Client client) {
this.client = client;
}
public abstract foo();
protected void bar() {
client.bar();
}
}
public class B extends A {
...
}
public class C extends A {
...
}
내 문제는 이것이다 : B
도 C
어느 실제로 boo
방법은 A
에서 구현하는 방법을 걱정 여기 내 코드입니다. A
은 boo
구현에만 client
을 사용합니다. 나는 B
및 C
의 생성자를 통해 client
을 계속 주입하고 싶지 않습니다. 내 옵션은 무엇입니까? 나는 어노테이션을 생성자 대신에 client
필드 선언에 직접 사용할 수 있다고 생각한다. 이것은 좋은 접근 방법입니까? 다른 추천 방법이 있습니까? 아니면 나는 여기 DI에 대해 뭔가를 오해하고 있는가? 사전에
감사합니다, Bhargava 내가 최근에 사용하기 시작
에 그것은 필드에 Inject' @'사용하는 것이 정상입니다있어. – yatul
@yatul 감사합니다! 그거 알아두면 좋을거야. – Bhargava
나는 필드에'@Inject'를 피하는 것을 선호한다. 주입 할 수있는 가장 간단한 방법입니다. 나는 생성자 매개 변수를 여기저기서 추가한다고하더라도 생성자를 유지하는 것을 선호합니다. –