タグ

2020年7月11日のブックマーク (1件)

  • DI って何でするのかわからない人向けに頑張って説明してみる「本来の意味」 - Qiita

    DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる を、単体テストにフォーカスしたら単体テストが来の目的では無い的なコメントが散見されました。 確かに DI コンテナは元々は SOLID 原則の D に該当する依存性逆転の原則 (Dependency inversion principle) の「具体ではなく、抽象に依存しなければならない」に大きく関係するものになります。 Wikipedia から引用します。 ソフトウエアモジュールを疎結合に保つための特定の形式を指す用語。 この原則に従うとソフトウェアの振る舞いを定義する上位レベルのモジュールから 下位レベルモジュールへの従来の依存関係は逆転し、結果として下位レベルモジュールの 実装の詳細から上位レベルモジュールを独立に保つことができるようになる。 例えば以下のように上位レベルのモジュール(Present

    DI って何でするのかわからない人向けに頑張って説明してみる「本来の意味」 - Qiita
    j5ik2o
    j5ik2o 2020/07/11
    "DIPを実現するのにDIコンテナが必須か"は議論が分かれるところ。十分に分散統治されたファトリでもよいのでは?とか。ScalaならDIコンテナなしでDIできる。DIコンテナを使う理由にはAOPや依存F/Wを利用するためなどもある