19

いくつかのアーキテクチャ上の変更をレガシーASP.NETアプリケーションに設計しています。ASP.NETMVCのIDependencyResolverを模倣する依存関係解決用のいくつかのクラスのプロトタイプを作成しました。インターフェースはほとんど同じですが、他の自然言語であるため、投稿しません。

私はそれがサービスロケーションと見なされる可能性があることを理解しました。サービスロケーションは通常(場合によっては完全ではありませんが)依存性注入を支持して非難されます。それでも、ASP.NETMVCの依存関係解決の実装の使用に反対する推奨事項は見つかりませんでした。

ASP.NET MVCのIDependencyResolverはアンチパターンと見なされますか?それは悪いことですか?

4

2 に答える 2

27

署名を見ると、それが別の名前の単なるサービスロケーターであることがわかります。Service Locatorはアンチパターンであり、関係は推移的であると考えているため、IDependencyResolverはアンチパターンであると考えています。

それとは別に、Releaseメソッドがないため、インターフェイスも壊れています。

于 2011-04-13T19:03:40.777 に答える
8

私はそうは思わない...あなたはASP.NETMVCにあなたが望むどんなIoCも注入することができる、それは私にはかなり良いパターンのように思える。

UnityをASP.NETMVC3に注入することに関するブログ投稿は次のとおりです。

于 2011-04-13T18:33:32.583 に答える