TL;DR
制御の反転(Inversion of Control、IoC)。ハリウッドの原則とも呼ばれる考え方と関係が深い。Wikipedia によると、プロシージャを呼び出す側と呼び出される側を、従来のプログラムとは逆にすることである。
なぜ必要か
Wikipedia によると、フレームワークは個々のアプリケーションの機能を知らないので、再利用できる部分と個別の目的のためのコードを、別々に開発できる。
仕組み
従来のプログラムでは、利用者のコードがライブラリの関数を呼び出し、その戻り値に応じて処理を進める。制御の反転では、ウィンドウシステムのようなフレームワークが入力を監視し、利用者が書いたルーチンを適切なタイミングで呼び出す。利用者が書くコードは、フレームワークの空白を埋めるものになる。
この考え方は、冗談めかして「ハリウッドの原則」とも呼ばれる。「君の方から電話してこないで。君が必要な時はこっちから電話するから」という意味で、英語の call(電話する、呼び出す)を掛けている。
実現する手法には、依存性の注入のほか、ファクトリ、サービスロケータ、テンプレートメソッド、ストラテジーなどのパターンがある。
注意点
個々のタスクは単純になるが、アプリケーション全体の協調動作はより複雑になる。