DI

依存性の注入(Dependency Injection)とは、基本的にオブジェクトが必要とするオブジェクト(依存)を、オブジェクト自身に構築させるのではなく、オブジェクトに提供することです。

依存性の注入では、オブジェクトはそのコンストラクタで依存性を受け取ります。オブジェクトを構築するには、まずそのオブジェクトの依存関係を構築しますが、それぞれの依存を構築するためにはそのまた依存が必要、とその繰り返しになります。つまり、オブジェクトを構築するにはオブジェクトグラフを構築する必要があるのです。

オブジェクトグラフとは?
オブジェクト指向のアプリケーションは相互に関係のある複雑なオブジェクト網を持ちます。オブジェクトはあるオブジェクトから所有されているか、他のオブジェクト(またはそのリファレンス)を含んでいるか、そのどちらかでお互いに接続されています。このオブジェクト網をオブジェクトグラフと呼びます。- Wikipedia (en)

オブジェクトグラフを手作業で構築することは、労力がかかり、ミスが発生しやすく、テストが困難になります。その代わりに、Dependency Injector (Ray.Di) がオブジェクトグラフを構築します。

Ray.Diは、BEAR.Sundayで使用されているDIフレームワークで、Google Guiceに大きく影響されています。詳しくはRay.Diのマニュアルをご覧ください。