コンストラクターが次のようなクラス A があるとします。
public A(@Assited long id, @Assisten String name, ServiceA serviceA, ServiceB serviceB)
AFactory があります。
public interface AFactory{
A create(long id, String name);
}
したがって、AI のインスタンスを作成するには、明らかに次のようなことを行う必要があります。
injector = Guice.createInjector(new MyModule());
AFactory af = injector.getInstance(AFactory .class);
A a = AFactory.create(100, "mike");
しかし、たとえば、タイプAのメンバーを持つクラスB、クラスC、クラスDなど、他のクラスがあるとしましょう(フィールドインジェクションを使用しますが、ctorにすることもできます):
public class B{
@Inject
A a;
}
そして、A の同じインスタンスがそれらのクラスに注入されることを望みます。ただし、A の別のインスタンスを他のクラス (クラス E と F としましょう) に挿入するオプションがまだあります。
それを行う正しい方法は何ですか?私はそれを行うためのきれいな方法を考えることはできません。