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 に答える