キュー内のオブジェクトのタイプに応じて異なる依存関係グラフを挿入する必要があるキュー サービスがあります。を使用してStructure Map
います。
したがって、キュー内のオブジェクトが の場合はTypeA
の具象クラスTypeA
が使用され、 の場合TypeB
は の具象クラスTypeB
が使用されます。
次のようなキュー内のコードを避けたい:
if (typeA)
{
// setup TypeA graph
}
else if (typeB) {
// setup TypeB graph
}
グラフ内には、IReader(ISomething, ISpomethingElse)
whereなどのジェネリック クラスもありますが、ジェネリックIReader
ですが、正しい型ISomething
とISomethingElse
for 型を挿入する必要があります。 ISomething
依存関係などもあります。
現在、TypeA
またはTypeB
オブジェクトを作成し、StructureMap を使用してジェネリック Processor クラスを挿入してから、次のようなメソッドにfactory
手動でTypeA
またはTypeB
ファクトリを挿入します。
Processor.Process(new TypeAFactory) // perhaps I should have an abstract factory...
ただし、ファクトリはIReader
上記のジェネリックを作成するため、そこからすべての TypeA またはTypeB
クラスを手動で注入することになります。
これで十分だと思います。
私は初めてStructureMap
で、柔軟でエレガントなソリューションのために、誰かがここで正しい方向に向けてくれることを望んでいました.
ありがとう