1

実行時に、ファクトリを介してオブジェクトの 3 つ以上のインスタンスをインスタンス化する必要がある状況があります。スナップショットを貼り付けているので、よりよく説明されています。

ディペンデンシー グラフ

より良いアプローチはありますか?依存性注入を正しく行っていますか

ありがとう

4

2 に答える 2

0

実行時の依存関係を解決するために抽象ファクトリを使用することは、よく知られたソリューションです。

場合によっては、Metadata Role HintRole Interface Role Hint、またはPartial Type Name Role Hint (私のお気に入り) の方がエレガントな場合があります。ソリューション。

于 2015-08-24T08:23:03.627 に答える
0

コードを見ずに依存性注入を正しく行っているかどうかを判断するのは困難ですが、依存性注入を確実にサポートする設計になっているように見えます (クラス/オブジェクト階層がそうであるように)。

この設計を実装するには、オブジェクト作成ファクトリをクラス 1 のインスタンスに挿入することを検討します。これは、単体テスト用のモック ファクトリを渡すことで、ファクトリ ロジックから分離してクラス 1 のロジックをテストできることを意味します。クラス 1 の周りで、クラ​​ス 1 がこれらのテストでファクトリの正しいメソッドを呼び出していることをアサートします。あなたのデザインは、ファクトリがクラス 1 に渡されると述べているため、実際に正しく処理しているように見えます。もちろん、オブジェクト a1、a2、および a3 が正しくインスタンス化されていることをテストするために、ファクトリの周りに別のユニット テスト セットが必要です。

お役に立てれば。

于 2013-07-20T14:32:27.043 に答える