IOC
- Inversion of Control
- 既存のプログラムは、クライアント実装オブジェクトが自ら必要な実装オブジェクトを生成し、接続し、実行した。 一言で言って、実装オブジェクトがプログラムの制御フローを操作した。
- AppConfigは制御フローに対する権限をすべて持って行き、具現オブジェクトは自分のロジックを実行する役割だけを担当する。 つまり、実際にどの実装オブジェクトが実行されるかクライアントは知らない。
DI
- Dependency Injection
- アプリケーション実行時点(ランタイム)に外部から実際の実装オブジェクトを生成し、クライアントに伝達してクライアントとサーバの実際の依存関係が連結される。