我有一个应用程序,它使用XML文件来定义一些远程服务器,我希望从那里请求一些文件.
我使用XML文件是因为我可以设置N个服务器和N个要请求的文件,所以我不知道在代码中我将有多少个服务器.
这是我们的密码:
public class Application : IApplication
{
private readonly List<Requester> _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<Requester> CreateRequesters()
{
//Create requesters from the information getted from the configuration XML file using cofiguration manager.
}
}
但是我怀疑在类中注入一个工厂,这样这个类就可以得到它所需要的请求者是否是一个好主意.
depedency injection,如果我没猜错的话,它是用来避免self类创建它工作所需的资源的.
但是,通过这种方式,它使用了一个作为接口传递的工厂,所以我可以传递任何其他实现,我可以测试这个类,这是IoC的好处之一.
理论上,这个类似乎正在创建它所需要的对象,但是我如何使用和接口作为工厂,我认为我正在利用依赖注入的好处.
所以我的问题是,把一个工厂注入一个班级是不是一个好的做法,我做得怎么样?如何使用依赖注入来创建N个对象,这些对象可以是不同的,或者通过XML文件修改?
谢谢.