이 예제는 Dependency Injection에 대한 책에서 가져온 것입니다.Guice 부분 주입 예
87 페이지에이 예제가 있습니다.
public class NewsletterManager {
private final List<Recipient> recipients;
private final DelivererFactory factory; // The book notes this as injected
public NewsletterManager(List<Recipient> rs, DelivererFactory factory) {
this.recipients = rs;
this.factory = factory;
}
public void send(Newsletter letter) {
for (Recipient recipient : recipients) {
Deliverer d = factory.forLetter(letter);
d.deliverTo(recipient);
}
}
}
나는 코드가 할 무엇을 의미하는지 이해하지만, 내가 이해하지 못하는 것은 내가이 클래스의 인스턴스를 만들 수 있도록, 실체화, 또는 내 Module
을 구성하는 방법입니다.
DelivererFactory
이 주입 된 것으로 보입니다. 예제는 어떻게 말하지는 않지만, 생성자 주입을 통한 것임을 인정합시다. 이 경우 NewsletterManager
인스턴스에 특정적인 List<Recipient>
인스턴스를 전달하는 방법은 무엇입니까? Guice를 사용하여 모듈 DelivererFactory
과 특정 List<Recipient>
인스턴스를 구성한 NewsletterManager
을 인스턴스화하는 방법은 무엇입니까?
내가 얻지 못하는 것은 동시에 생성자의 서명에 개체와 인스턴스 특정 개체를 동시에 삽입 할 수있는 방법입니다. 이 경우 만 가지고 NewsletterManager
의 인스턴스를 얻을 수있는 방법이 표시되지 않습니다. 나는 공장에 의지해야합니까? 내가 너무 내 공장에 주입해야하기 때문에이 경우, 내 질문은 충분히 명확 바랍니다
...