我有一个关于依赖注入的问题。
说我想创建一个类,调用它,WebGetTask
WebGetTask 需要对 HttpService 的依赖
错误代码 1 代码:
private HttpService httpService;
...
List<WebGetTask> list = new ArrayList<WebGetTask>();
for(...)
{
list.add(new WebGetTask(httpService));
}
...
行。我知道这很糟糕,因为 httpService 被注入,但它从未使用过,除了在新的 WebGetTask 上创建
好的坏代码2代码:
private WebGetTaskFactory webGetTaskFactory;
...
List<WebGetTask> list = new ArrayList<WebGetTask>();
for(...)
{
list.add(webGetTaskFactory.newTask());
}
...
我认为这更好,因为我们使用工厂但是...但是..
从我站的地方,我可以看到在 WebGetTaskFactory 中我们仍在注入一个 HttpService 并且除了创建一个新的 WebGetTask 的唯一目的之外没有对它做任何事情
所以回顾一下我的问题是我如何设计一个工厂类(WebGetTaskFactory),当新对象在其构造函数上需要依赖项(HttpService)而不简单地注入和传递依赖项(HttpService)时创建新对象(WebGetTask)?或者更确切地说,这是这样做的方法吗?如果是这样,那么一切都很好,如果不是,那么请指导我如何正确使用DI和工厂模式。谢谢。