使用依赖注入的现实世界解决方案 - c#

我正在彻底阅读有关DI的文章,这似乎很有趣。到目前为止,我完全没有它。

我看到的所有示例都与JNDI有关,以及DI如何帮助您变得更加灵活。

用DI解决的现实生活中的应用程序/问题是什么,而其他方式很难解决?

更新
到目前为止,所有的答案都是有教育意义的,但换句话说,我正在您的编程生活中寻找示例,这些示例使您说“使用DI框架可以最好地解决此问题”。

参考方案

就在前几天,我决定继续阅读依赖注入。在那之前,我只知道这个词。老实说,我对马丁·福勒(Martin Fowler)的article的反应是:“就是这样吗?”

我必须同意James Shore:

“依赖注入”是5美分概念的25美元术语。

这根本不意味着它是一个坏概念。但是,严重的是,当一个实例A需要与另一个实例B一起使用时,可以归结为以下选择:

  • A 查找 B:

    这意味着B必须是全局的。邪恶。

  • A 创建 B:

    很好,如果仅A需要B。一旦C也需要B,请在此列表中将A替换为C。请注意,测试用例将是C,因此,如果您要测试,该选择也将消失。

  • B赋予A:

    那就是依赖注入。

  • 我想念什么吗? (请注意,我来自Python世界,所以也许有些我看不到的语言特定要点。)

    Java:“自动装配”继承与依赖注入 - java

    Improve this question 我通常以常见的简单形式使用Spring框架: 控制器服务存储库通常,我会在CommonService类中放一个通用服务,并使所有其他服务扩展到类中。一个开发人员告诉我,最好在每个服务中插入CommonClass而不是使用继承。我的问题是,有一个方法比另一个更好吗? JVM或性能是否会受到另一个影响?更新资料Comm…

    可以导入Java类时为什么要使用依赖注入? - java

    有人可以向我解释一下,当您只需要导入一个Java类时,为什么我们需要使用spring的依赖注入:import com.package.somejavaclass 我只是想知道为什么? 参考方案 DI和IoCDependency Injection(和Inversion of Control)与import无关。依赖注入使您可以制定运行时决策,而不是编译时决策…

    Spring MVC中的输入验证 - java

    我知道Commons Validator框架是Struts项目在服务器端和客户端验证输入值的事实上的标准。Spring MVC项目是否也是如此?我得到的印象可能不是,大多数Struts书籍和论坛都谈论Commons Validator框架,但是只有少数Spring书籍和论坛可以。在Spring MVC项目中验证输入的最佳实践是什么?干杯! 参考方案 在引入S…

    依赖项注入,初始化后的不变性 - java

    我希望能够指定对象的成员变量在对象被“初始化”后是不可变的,这对我来说意味着在注入任何依赖项之后,并且已经执行了它只能执行的任何其他初始化操作DI之后。是否有满足我兴趣的语言-以这种方式形式化DI,初始化和支持不变性?使它们成为语言的一部分可能很愚蠢;也许不会。我不确定。今天,我使用Java进行编程,但是我几乎无法使用“final”,因为这些阶段发生在构造函…

    Spring MVC Web应用程序检测暴力攻击的最佳方法? - java

    Spring 3.0 MVC中是否有专门用于帮助检测Web应用程序的身份验证/登录页面上的蛮力攻击的功能? 参考方案 经过长期验证的实践是,如果身份验证失败,则会引入随机但相当大的延迟。这样,合法用户将立即登录,但攻击者每次尝试将花费500ms-1s,这使整个暴力概念不切实际(将永远存在)。合法用户偶尔失败的登录只会使他们稍有延迟,并且不会引起注意。如果需要…