Inversion of Control とは
アーキテクチャにおける制御の反転
制御の反転(IoC)は、プログラムのフロー制御をアプリケーションコードから外部フレームワークやコンテナに移譲する設計原則です。
主なIoCパターン
- 依存性注入(DI) — コンストラクタ、セッター、インターフェースを通じた依存性の注入
- サービスロケータ — 一元化されたサービスレジストリ
- ファクトリーパターン — ファクトリーを通じたオブジェクト生成
- テンプレートメソッド — 基底クラスでのアルゴリズムスケルトン定義
IoCの利点
- コンポーネント間の疎結合
- モックによる簡素化されたテスト
- 柔軟な依存性設定
- コードの再利用性
人気のIoCコンテナ
- Spring(Java) — 最も人気のあるIoCコンテナ
- ASP.NET Core DI — .NET組み込みのDI
- InversifyJS — TypeScript/JavaScript向けIoC
- Autofac, Ninject — .NET向け代替ソリューション