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