Das Dependency-Inversion-Prinzip (DIP) // deutsch

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ม.ค. 2025

ความคิดเห็น • 15

  •  4 ปีที่แล้ว +12

    Ich finds super, dass Du für so grundlegende aber oft übersehene Architekturkonzepte eine deutschsprachige Erklärung lieferst. +1
    An mancher Stelle (zB bei dieser Episode) würde aber eine ganz einfache Illustration (zB mit Pfeilen zwischen den Klassen als Marker für die Abhängigkeit) Bände sprechen und noch mehr Leute abholen. Architektur Konzepte sind nunmal der natur nach eher Abstrakt und ein Bildchen macht es viel konkreter.

    • @thenativeweb
      @thenativeweb  4 ปีที่แล้ว +1

      Vielen Dank für Dein tolles Feedback, das freut uns sehr 😊
      Ich kann Deine Anregung gut nachvollziehen - der Punkt dabei ist leider ein bisschen die Zeit, die wir für die Videos haben. Und wenn man ansprechende Grafiken haben will, ist das leider schon ein ganzes Stück mehr Aufwand … also ich sage nicht, dass das nicht schön wäre, es ist nur zeitlich im Moment nicht anders lösbar.
      Aber vielleicht tut sich daran in Zukunft noch etwas 😊

  • @denkling
    @denkling 3 ปีที่แล้ว +3

    Cooler Kanal. Obwohl ich in Pension bin, also nix mehr tun muss :) , werd' ich mir einige Sachen anschauen, weil Interessenates kurz und prägnant erklärt wird. Ich bin beeindruckt.

    • @thenativeweb
      @thenativeweb  3 ปีที่แล้ว +1

      [gr] Vielen Dank, das freut mich - ich wünsche Dir viel Vergnügen 😊

  • @magicjonny6225
    @magicjonny6225 ปีที่แล้ว +2

    Also wenn wir z.B. einen Sportler haben, der einen Trainer erwartet, dann sagen wir dass er nicht einen bestimmten Trainer (z.B. Jogi Löw) erwartet sondern einfach irgendeinen Trainer, damit er nicht mehr nur abhängig ist von Jogi Löw?

  • @TechWorldWithSerdar
    @TechWorldWithSerdar 2 ปีที่แล้ว +1

    hallo, danke für das tolle Video. Sind eigentlich die Begriffe dependency inversion und dependency injection identisch?

    • @thenativeweb
      @thenativeweb  2 ปีที่แล้ว +2

      [gr] Vielen Dank für Dein Feedback und das Lob 😊
      Was Deine Frage angeht: Nein, die Begriffe sind nicht identisch - Dependency-Inversion besagt zunächst einmal nur, dass die Abhängigkeiten von Außen in eine Komponente hineingelangen, aber nicht, wie das konkret erfolgt. Dependency-Injection ist dann ein möglicher Ansatz, wie man Dependency-Inversion konkret umsetzen kann (ein anderer wäre zum Beispiel die Nutzung eines Service-Locators).

  • @XxSimon2
    @XxSimon2 2 ปีที่แล้ว +1

    Scheint so ähnlich zu sein wie das Design Pattern der Fabrikmethode.

    • @thenativeweb
      @thenativeweb  2 ปีที่แล้ว +1

      [gr] In gewissem Sinne ja …
      Bei der Factory geht es ja im Prinzip darum, dass eine Instanz zu einem gegebenen Interface erstellt wird, ohne dass Du als Verwender weißt (oder wissen müsstest), von welcher konkreten Klasse diese Instanz erzeugt wird.
      Bei dem Dependency-Inversion-Prinzip hast Du auch die Konstellation, dass in eine Klasse (oder eine Funktion) eine bestehende Instanz hineingereicht wird, die ein Interface erfüllt, wo Du aber nicht weißt, von welcher konkreten Klasse diese Instanz abstammt.
      Das heißt, beiden Patterns ist gemein, dass ein Interface verwendet wird, um zu abstrahieren. Bei der Factory geht es aber um die Erzeugung der Instanz, bei Dependency-Inversion nur um die Übergabe. Insofern haben die einen unterschiedlichen Schwerpunkt.

  • @nudoduno8081
    @nudoduno8081 3 ปีที่แล้ว +1

    Klasssssssse

  • @ikarusebike2653
    @ikarusebike2653 3 ปีที่แล้ว +1

    da fehlt was ! Wer erzeugt die Implementierung vom Interface? Das ist ein wesentlichler Bestandteil vom DI

    • @thenativeweb
      @thenativeweb  3 ปีที่แล้ว +1

      [gr] Ich habe nicht aus dem Stegreif im Kopf, wie das Pattern im Detail definiert ist, aber IMHO ist die Aussage des Patterns nur, *dass* man Dependencies von Außen hereingeben sollte statt sie von Innen aufzulösen.
      *Wie* man das macht, ist ein Implementierungsdetail (und da gibt es ja tatsächlich auch eine ganze Reihe von verschiedenen Ansätzen, sei es ein Service-Locator oder ein DI-Container, und die Unterscheidung zwischen Constructor- und Property-Injection).
      Du hast für die Praxis natürlich Recht, dass es eine essenzielle Frage ist, wer die Implementierung erzeugt - ich bin mir nur wie gesagt nicht sicher, ob das für die Definition des Patterns an sich relevant ist.

    • @agguLi
      @agguLi 2 ปีที่แล้ว

      Stimmt, ein Beispiel ist das Spring Framework als DI-Container. Hier wird die Interface Implementierung mit @Service annotiert, wodurch diese Klasse als Bean erzeugt und von diesem Container verwaltet wird. Da der Container sicherstellt, dass die Beans zum Programmstart verfügbar sind, können diese für die Depedency injection verwendet werden.