コンテンツへスキップ
uencoder

Inversion of Control

制御の反転(Inversion of Control、IoC)は、プログラムフローの制御をアプリケーションコードからフレームワーク/コンテナへ移す。フレームワークがアプリケーションコードを呼び戻す。

目的

呼ばれるライブラリから呼ぶフレームワークへ制御フローを反転させ、疎結合で拡張可能なアーキテクチャを実現する。

メカニズム

伝統的にはアプリケーションがライブラリを呼ぶ。IoC ではフレームワークがフローを制御し、適切なタイミングでアプリケーションを呼び戻す(ハリウッド原則)。DI は IoC の一形態である。イベントループ、テンプレートメソッド、コールバックはすべて IoC の現れである。

ユースケース

  • フレームワーク設計
  • 疎結合(ルーズカップリング)
  • イベント駆動

関連用語

References