Я использую XML-файл, потому что могу установить N количество серверов с N количеством запрашиваемых файлов, поэтому я не знаю в коде, сколько серверов у меня будет.
Это код:
Код: Выделить всё
public class Application : IApplication
{
private readonly List _requesters = [];
public Application(IRequesterFactory paramRequesterFactory)
{
_requesters.AddRange(paramRequesterFactory.GetRequesters());
}
public RequestFiles()
{
foreach(Requester requester in _requesters)
{
_requsters.RequestFiles();
}
}
}
public class RequesterFactory
{
private readonly ICongigurationManager _configurationManager;
public RequesterFactory(IConfigurationManager paramConfigurationManager)
{
_configurationManager = paramConfigurationManager;
}
public List CreateRequesters()
{
//Create requesters from the information getted from the configuration XML file using cofiguration manager.
}
}
Зависимость инъекция, если я не ошибаюсь, она используется для того, чтобы избежать создания самоклассом ресурсов, необходимых для работы.
Но таким образом она использует фабрику, которая передается как интерфейс , поэтому я могу передать любую другую реализацию и протестировать класс, что является одним из преимуществ IoC.
Теоретически кажется, что класс создает необходимые ему объекты, но как я использую и взаимодействую как фабрику, я думаю, что использую преимущества внедрения зависимостей.
Итак, мой вопрос заключается в том, является ли хорошей практикой внедрение фабрики в класс, как Я делаю? Как я могу использовать внедрение зависимостей, чтобы создать N объектов, которые могут отличаться или изменить XML-файл?
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/782 ... e-resource