Я создаю приложение, которое загружает файлы с S3 и DynamoDB от имени моих пользователей с их учетных записей AWS.Каждый пользователь регистрируется со своими учетными данными AWS в моей системе, чтобы начать с.
Когда мое приложение запускается, я считываю всю информацию о своих пользователях и создаю для них S3Client или DyanmoDBClient в зависимости от того, с кем они зарегистрированы.Во время выполнения я извлекаю объекты, используя данные зарегистрированного аккаунта.Код выглядит примерно так:
interface ReaderClient {
public Object read();
}
public class S3Client implements ReaderClient {
getInstance(account);
}
public class DynamoDBClient implements ReaderClient {
getInstance(account);
}
class ReaderClientFactory {
public static ReaderClient getReaderClient(User) {
switch(user.database) {
case S3:
return S3Client.getInstance(user.account);
break;
case Dynamo:
return DynamoDBClient.getInstance(user.account)
break
}
}
}
Как заменить эту фабрику на Google Guice?Это вообще возможно?Я копался в провайдерах и помогал вводить, но не в состоянии приспособить их к этому сценарию.Любая помощь будет оценена.