タグ

DIに関するlalupin4のブックマーク (4)

  • BlazorにおけるDIのScopeについて - Qiita

    この記事では、BlazorにおけるDIの各Scopeについて、Blazor Server、Blazor WebAssemblyそれぞれの観点で見てみようと思います。 DIとは? DIとはDependency Injectionの略で、依存性注入と訳されます。クラスを疎結合にし、柔軟なソフトウェア開発を可能にします。 例えば、メール送信のためにサードパーティのライブラリがあるとします。通常、このライブラリを利用する場合は、ライブラリのクラスのインスタンスを作成して利用します。この方法ですと、ライブラリのクラスと使用するクラスが密結合になってしまいます。 DIをすると、インターフェイスを経由してクラスのインスタンスを取得できるため、クラス間を疎結合にできます。 DIの詳細については、ここでは述べませんので、他の記事や書籍等を参照してください。 DIのScopeとは? DIによってクラスのインス

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

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

    DI って何でするのかわからない人向けに頑張って説明してみる「本来の意味」 - Qiita
    lalupin4
    lalupin4 2020/07/11
    数年に一度挑戦するが逆に依存関係を見失って投げ出してる。毎回ブコメのように Factory というか Service Locator でよかったやんてなる。
  • DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita

    追記 2022/11/12 追記 この記事読んで、DI 便利だなって思ったらこちらも併せて読んでみてください。クリーンアーキテクチャーの開設の中で依存性逆転の説明が出てきます。難しいかもしれませんが、一度理解すればつぶしが効く考え方なので腰を据えて読んでみてください。 文 ここでは、最近のそこそこの規模のアプリだと大体使われてる(と私は思ってる)Dependency Injection(DI)について、何故使ってるのか?というのを私の理解で書いていきたいと思います。 今回の対象言語は C# ですが、DI 使ってる言語であれば大体同じ事情なのかなと思います。 単体テストしたいよね アプリケーションを作るとうまく動いているかテストをすると思います。 たとえ、そのアプリがハローワールドだとしても動かして目視で確認してると思います。 もうちょっとアプリの規模が大きくなってくるとクラス単位やクラス

    DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita
    lalupin4
    lalupin4 2020/07/10
    理解しているつもりだが納得していない技術。
  • StructureMap

    StructureMap is the oldest, continuously used IoC/DI container for .Net dating back to its first public release and production usage all the way back in June 2004 on .Net 1.1. The current 4.* release represents 12+ years of lessons learned in the StructureMap and greater .Net community -- while also wiping away a great deal of legacy design decisions that no longer make sense today. Learn more » F

  • 1