LoginSignup
0
0

More than 3 years have passed since last update.

Effective Java(第3版) 項目5 資源を直接結び付けるよりも依存性注入を選ぶ

Posted at

インスタンス生成時に、依存する資源(インスタンス)をコンストラクタに渡すことで、
依存性注入(Depenency Injection)を行うべき、という内容です。

記載内容

以前性注入について

名前を知らずに多くのプログラマが使用している。
使用することで、クラスの柔軟性、再利用性、テスト可能性が大幅に向上する

Factory Methodパターン

パターンの変形として、資源のファクトリを渡すことで、Factory Methodパターンとすることもできる。
Java8で導入されたSupplierは、ファクトリを表現するのに向いている。

フレームワーク

プロジェクトの規模が大きい場合、依存性注入によりソースが複雑化してしまう可能性がある。
Dagger、Guice、Spring等のフレームワークを使用することで、
整理することが出来る。
手作業で依存性注入パターンを使用していた場合、フレームワークを容易に導入できる。

考察

Depenency Injectionは、フレームワークにより行うものというイメージが強いかもしれませんが、
コンストラクタにより手動で依存性を注入することでも、多くのメリットが有ります。
特に、テスト自動化を行う上で、処理をモックに差し替えが可能になるのが大きいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0