У меня есть приложение, которое подключается к нескольким сайтам с другой парой имени пользователя и пароля для каждого. Я хочу, чтобы это зависало, так что я могу сказать «всякий раз, когда вы хотите использовать FTPConnection, используйте это соединение», и «это соединение» зависит от того, что хочет пользователь.Ввод информации аутентификации
Так что у меня есть класс, как этот (псевдо-Google синтаксис Guice):
public class FTPConnection
{
FTPConnection(@Username String username, @Password String password)...
}
И класс, который использует его
public class SomeFTPSiteProcessor
{
SomeFTPSiteProcessor(@Inject FTPConnection)...
}
То, что я хотел бы сделать, это есть " в настоящее время активное "соединение создается всякий раз, когда мне нужен экземпляр SomeFTPSiteProcessor.
Как мне это сделать? Я бы использовал область? Я бы использовал провайдера? Помогите! Псевдокод был бы наиболее оценен.
Я надеюсь, что это имеет некоторый смысл ...
Edit: Пользователь делает выбор которого FTP соединение, чтобы использовать во время выполнения и поэтому мне нужна информация о проверке подлинности, чтобы быть предоставлен динамически. Язык заставляет меня думать о каком-то провайдере, но я не могу полностью окунуться в то, как это будет сделано.
Благодаря
Но это компиляция. Мне нужно, чтобы это было переменной во время выполнения. Вместо немного разных экземпляров ножек робота, подумайте о числе ног (например), являющихся значением, переданным пользователем графического интерфейса пользователя. Таким образом, имя пользователя и пароль неизвестны во время компиляции и известны только через некоторое время после того, как инжектор создал корневой объект. Имеет ли это смысл? – cheez
Думаю, вам понадобится фабрика. Вероятно, на этом заводе есть экземпляр инжектора. –
Дорогой бог нет ... Ничего, кроме этого. Должен быть способ сделать это. Как другие приложения обрабатывают инъекцию «текущего пользователя»? Я думаю, что это очень похоже на это. – cheez