3

我一直在阅读有关依赖注入的内容,并且正在了解基础知识。互联网上的大多数示例都解释到这里:

public class MyClass
{
    private IDependency _dependency;

    public MyClass(IDependency dependency)
    {
        _dependency = dependency;
    }
}

这样,我们通过构造函数注入依赖。但我不认为继续写是个好主意:

var myClassInstance = new MyClass(someArgument);

整个代码。我应该使用工厂模式来获取实例吗?

public static class MyClassFactory
{
    private static IDependency dependency = DependencyFactory.GetInstance();

    public static MyClass GetInstance()
    {
        return new MyClass(dependency);
    }
}

这是要走的路吗?

我知道使用 DI 容器可以解决问题,但我想了解如何在使用 DI 容器之前将依赖注入合并到我的代码中。

4

2 回答 2

4

依赖注入只是一种模式——你在代码的第一部分实现它(构造函数注入)

现在您可以手动配置依赖项(就像您在第一个示例中所做的那样)或使用可以帮助您的框架(在幕后它会或多或少地做同样的事情)。

模式的价值不是为了避免写下面

var myClassInstance = new MyClass(dependencyObject);

而是将原本会耦合的软件层解耦

于 2013-01-15T16:54:30.977 回答
2

是的,工厂将是要走的路。事实上,DI 容器实际上只是一个美化的工厂,可以通过 xml(例如在 spring 的情况下)或代码(例如结构图)进行配置

于 2013-01-15T16:55:29.533 回答