この例は、依存性注入に関する本から抜粋したものです。
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
注入されているようです。例ではその方法は説明されていませんが、コンストラクターの注入によるものであることを認めましょう。List<Recipient>
その場合、必要なインスタンスに固有のインスタンスを渡すにはどうすればよいNewsletterManager
ですか?NewsletterManager
Guiceを使用して、モジュール構成DelivererFactory
の特定のインスタンスでインスタンス化するにはどうすればよいList<Recipient>
ですか?
私が得られないのは、コンストラクターのシグニチャーに自動的に挿入されたオブジェクトとインスタンス固有のオブジェクトが同時に存在する方法です。NewsletterManager
その場合、自分だけのインスタンスを取得する方法がわかりませんList<Recipient>
。工場に頼る必要がありますか?その場合、DelivererFactory
私も工場で注入する必要があるので、注入の用途は何ですか...
私の質問が十分に明確であることを願っています...