コードを書くときは、コードを変更に適応させる SOLID Design Principles を目指します。
- S :単一責任の原則
- O :オープン/クローズの原則
- L :リスコフ置換原理
- I :インターフェースの分離
- D :依存性注入
最初の 4 つの SOLI を達成するために、依存関係を注入します。
手動でも依存性注入 (DI) を実現できます (Poor Man's Dependency Injection) または Inversion of Control (IoC) コンテナーを使用 (Autofac、Ninject、Structure Map、Unity など) .
DI に IoC コンテナーを使用することは、速度の問題になることはありません。
Mark Seemann 氏は次のように述べています。「オブジェクト インスタンスの作成は、.Net Framework によって非常に高速に行われます。アプリケーションのパフォーマンスのボトルネックは別の場所に現れるので、心配する必要はありません。」
結論 私は個人的に、すべての ASP.Net MVC および Web API プロジェクトで IoC コンテナーを使用しています。また、IoC コンテナーを使用しないオープンソースの MVC や Web API アプリケーションはほとんど見当たりません。
DI の仕組みを理解するには、次のすばらしい記事をご覧ください:http://www.martinfowler.com/articles/injection.html
Mark Seemann によるこの本の半分でも読むことをお勧めします。 =マーク+シーマン
業績記録を樹立しようとしない限り、DI が業績に顕著な影響を与えるとは思えません。過去 1 年間、SimpleInjector を 1 日あたり数百万件のヒットを記録する Web サイトで使用しており (最も高速な Web サイトの 1 つです)、パフォーマンスへの影響はほとんど測定できません。