|
私もDI懐疑派ではありますが、ユニットテストツールを 用いたテストファーストが義務付けられている案件の場合 はDIコンテナを選択するかもしれません。
DIコンテナの利点はユニットテストを実施する上で不都合な要素、例えば ・J2EE API, JDBC ・MVC系とORマッパ系の繋ぎ部分 等の依存性を排除し疎結合に実装出来る部分だと考えてます。
よく疎結合というと自前の実装クラス間を疎結合にする使い方を見たり しますが、用途として間違ってる気がします。
ユニットテスト・本稼動を通して1インターフェース1実装に なってしまう場合は、分断してはいけない依存性をDIをしてる可能性が高く DIする必要が無いか意義が薄いのだと思います。
10人月くらいの小規模案件でMVCだけで済みそうなものには 簡単なファクトリがあれば同様のことはできるので、 無理に適用してませんね。。 (トランザクション制御は自前になりますが)
|