相关疑难解决方法(0)

依赖注入是一种模式,是吗?

我和我的一位同事就依赖注射问题进行了激烈的辩论,并意识到我并不完全了解这个主题的所有事实.

所以,拿这个代码(就是你知道,我们正在使用Castle Windsor)

IPlayerService service = Container.Resolve<IPlayerService>();
Run Code Online (Sandbox Code Playgroud)

上面的代码显然是使用IoC的DI的一个例子.

但是,请参阅下面的代码(更新:假设我通过构造函数传递所有外部依赖项):

var playerClient = new PlayerClient();
var playerSkinClient = new PlayerSkinClient();
IPlayerService service = new PlayerService(playerClient, playerSkinClient);
Run Code Online (Sandbox Code Playgroud)

我的论点是上面的代码是DI模式的一个例子,DI可以在没有IoC的情况下存在.

现在,我的同事并没有完全不同意我的观点,但他说上面的代码不是涉及DI的任何模式的例子.

  1. 那么,DI可以仅用作一种模式而不需要任何额外的框架吗?

  2. 如果是这样,上面的代码是一个例子吗?

  3. 最后,定义DI模式(如果存在),没有Container的概念.

UPDATE

我今晚稍后会更详细地回答和评论,但感谢大家对目前为止经过深思熟虑的答案和评论!

design-patterns dependency-injection inversion-of-control

13
推荐指数
2
解决办法
945
查看次数

IoC /依赖注入 - 请解释代码与XML

我基本上理解IoC框架是如何工作的,但有一点我不太了解的是基于代码的配置应该如何工作.使用XML,我了解如何将新程序集添加到已部署的应用程序,然后更改XML中的配置以包含它.如果应用程序已经部署(即以某种形式编译),那么如何在不重新编译的情况下进行代码更改?或者是人们做什么,只需在代码中更改配置并重新编译?

xml dependency-injection inversion-of-control

8
推荐指数
1
解决办法
1876
查看次数