私はこのアプリケーションをIOC(autofac)を使ってどこに持っていますか?その間、私は工場が必要な位置に自分を見つけました。工場の中で私は依存関係のある新しいオブジェクトを作成します - だから私はこれらと結婚することができますか?工場とIOCは一緒に - 両方の使い方は?
public class SubscriptionHandlerFactory : ISubscriptionHandlerFactory
{
public ISubscriptionHandler GetProvider(StreamType streamType)
{
switch (streamType)
{
case StreamType.Rss:
return new RssSubscriptionHandler(null,null,null,null);
case StreamType.Person:
return new PersonSubscriptionHandler(null, null, null, null);
default:
throw new ArgumentOutOfRangeException(nameof(streamType), streamType, null);
}
}
}
工場にIoCコンテナを注入して、その上に公開されているメソッドを使用して、必要な具体的な型のインスタンスを取得します。その後、コンテナはあなたのための他の依存関係を解決します。 –
@MartinCostelloはサービスロケータで、工場内で行われたとしても、主に反パターンとみなされます。 –
あなたは工場が必要ですか? IoCコンテナにオブジェクト依存グラフを作成させることができないのはなぜですか? –