Допустим, что есть класс А что-х конструктор выглядит примерно так:Guice - Binding экземпляр, созданный при содействии литьевого завода
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");
НО, Скажем, у меня есть другие классы: класс B, класс C и класс D, который имеет элемент с типом А, например (с впрыском поля, но может быть CT также):
public class B{
@Inject
A a;
}
И я хочу, чтобы тот же экземпляр из A будет введен в эти классы. Но у вас есть возможность ввести еще один экземпляр класса A в другие классы (скажем, для класса E и F).
Каков правильный способ? Я просто не могу придумать, как это сделать.
Так что, если я буду просто иметь поле в классе Е следующим образом: @Inject @Named ("последовательный") – slashms
'@Inject @Named ("последовательный") fieldName', но да. И ключевым «последовательным» может быть что угодно, если вы согласны в этом. :) –