依存性注入

依存性注入は、コードがその依存性をどのように保持するかを取り扱うソフトウェアデザインパターンです。

オブジェクトまたは関数が、依存性を取得するには3つだけ方法が存在します。

依存性は、一般的にnew演算子を使用して作成することができます。
依存性は、グローバル変数を参照することで調べることができます。
依存性は、それが必要な場所に渡すことができます。
依存性を作成する・参照の最初の2つは、依存性をハードコードすることになるため望ましいものではありません。 不可能ではないかもしれませんが、依存性の変更を難しくしてしまいます。 独立したテストのためのモックの依存性を提供することが望ましいケースの際に、そのテストでこれが特に問題になります。

コンポーネントから依存性を発見する義務が取り除かれるため、3つ目が最も現実的です。 依存性は、単純にコンポーネントに引き渡されます。

http://js.studio-kingdom.com/angularjs/guide/di