2023年5月15日のブックマーク (2件)

  • 何となく便利だなあと思ってた機能がDIという名前だった話 - いいねのお勉強ノート

    Spring Frameworkで何となく使っていた 、 使いたいインスタンスの初期化・設定をcontext.xmlに従って自動で行う機能があるんですが この仕組みはDI(Dependency Injection)というデザインパターンらしい。 気になったので少しお勉強。 DIとは Dependency Injection 依存性の注入 クラスの使われるであろうオブジェクトを、外部から注入する仕組み。 注入するオブジェクトをDIコンテナにまとめることもある。 DIのメリット 1. 単体テストができるようになる。 クラス内で使いたいインスタンスを生成すると、テスト結果がインスタンスに影響を受ける。(結合テストになってしまう) DIをすることで、インスタンス部分をモック化し、単にクラスの振る舞いのみをテストすることができる。 2.コードがシンプルになる インスタンス生成文でコードの行数を使わな

    何となく便利だなあと思ってた機能がDIという名前だった話 - いいねのお勉強ノート
    eakm
    eakm 2023/05/15
  • DI(Dependency Injection)に関するメモ - Shin x Blog

    PHPの現場 にて、DI 談義を行うので、頭を整理しておくためのメモです。 DI についてきちんと知りたいのであれば、参照に挙げたリンク先に有用な記事があるので、そちらを参考にして下さい。 PHP を念頭に置いてますが、Java など他言語でも大枠は同じだと思います。この内容は、いずれ整理するかもしれませんし、そのままかもしれません。 DI という言葉 「DI」が差す意味合いが、依存オブジェクトの注入だけなのか、DI コンテナによる注入を含んでいるのか、DIP まで意識しているのかが、人やコンテキストによって違っていそうで、そこを揃えてから議論しないと。— Masashi Shinbara (@shin1x1) May 19, 2017 DI について話す時に、何を差すのかが異なると話が噛み合わない。そこで、それぞれに名前を付ける。 DI パターン = 依存オブジェクトを注入することを差す

    DI(Dependency Injection)に関するメモ - Shin x Blog
    eakm
    eakm 2023/05/15