Inversion of Control
制御の反転(Inversion of Control、IoC)は、プログラムフローの制御をアプリケーションコードからフレームワーク/コンテナへ移す。フレームワークがアプリケーションコードを呼び戻す。
目的
呼ばれるライブラリから呼ぶフレームワークへ制御フローを反転させ、疎結合で拡張可能なアーキテクチャを実現する。
メカニズム
伝統的にはアプリケーションがライブラリを呼ぶ。IoC ではフレームワークがフローを制御し、適切なタイミングでアプリケーションを呼び戻す(ハリウッド原則)。DI は IoC の一形態である。イベントループ、テンプレートメソッド、コールバックはすべて IoC の現れである。
ユースケース
- フレームワーク設計
- 疎結合(ルーズカップリング)
- イベント駆動