• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wstrzykiwanie zależności

Object Storage Arubacloud
+2 głosów
290 wizyt
pytanie zadane 24 marca 2021 w C# przez tomasz12345 Użytkownik (750 p.)
Witam. Na wstępie odrazu powiem, że jest już podobne pytanie z odpowiedzią, jednak tyczy sie jezyka Java i średnio to tam rozumiem... Mógłby mi ktos wytłumaczyć w prostych słowach jak dziala DI?

Co nam ono konkretnie daje? Przykład Z i BEZ byłby perfekcyjny.

 

Pozdrawiam!
komentarz 24 marca 2021 przez kubaapk Nałogowiec (44,270 p.)
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-5.0

W pierwszym akapicie masz opisane wszystko, co to DI i jakie problemy rozwiązuje.
komentarz 24 marca 2021 przez VBService Ekspert (253,300 p.)
komentarz 24 marca 2021 przez JakSky Stary wyjadacz (14,770 p.)

@kubaapk, dokładnie, na stronie msdn wszystko ładnie jest opisane.

2 odpowiedzi

+1 głos
odpowiedź 24 marca 2021 przez Wiciorny Ekspert (269,790 p.)

 jednak tyczy sie jezyka Java i

Wstrzykiwanie zalezności to wzorzec, język tutaj nie ma znaczenia.  

komentarz 3 kwietnia 2021 przez tomasz12345 Użytkownik (750 p.)
Okej, ale skoro tak to czy dobrze rozumiem ze chodzi.., że jeśli mam klasę zależną od innej klasy to zeby  ,, wstrzyknąć obiekt,, do innej klasy to zamiast tworzyc w nim nowy obiekt to tworze zmienną typu interfejs i do niej przypisuje instancję obiektu? załóżmy że klasa implementuje inną klasę która odpowiada za sposób podłączenia do ,, bazy danych,,. Jedna z klas zapisuje wszystko lokalnie np. w kolekcjach, a druga podłącza bazę danych SQL. Plusem takiego rozwiązania jest to że moge wtedy podmienić tylko klasę? i teraz moje pytanie :

 

w ASP.NET za przypisanie danej klasy do metod interfejsów odpowiada ConfigureServices? ( czyli wystarczy tam podmienić klasę i nie trzeba nic zmieniać w klasie zależnej )

 

a w springu? gdzie przypisuje się że jeśli mamy dwie klasy to chcemy uzywac implementacji jednej ?
0 głosów
odpowiedź 24 marca 2021 przez CSSoup Mądrala (6,460 p.)
Co to DI:

https://www.youtube.com/watch?v=UQleK0fOjd4

IoC, Inversion of control:

https://www.youtube.com/watch?v=3cePAk96zlw

Tak jak Wiciorny napisał jest to wzorzec, wiec język w sumie jest bez z znaczenia :) Podałem Ci przykłady w PHP, ale filmiki są na tyle uniwersalnie tłumaczone, że powinieneś załapać ideę bez problemu.
1
komentarz 24 marca 2021 przez Wiciorny Ekspert (269,790 p.)
Ale też warto dodać że mylnie łączy się IOC z DI, tzn one działają razem, ale nie jest to mus- i często ludzie nazywają DI - IOC i odwrotnie, natomiast samo wstrzykiwanie zależności może być bez udziału frameworku, wtedy nie ma mowy o IOC bo programista decyduje o tym, a nie jest to od-delegowanie działania do IOC
1
komentarz 24 marca 2021 przez CSSoup Mądrala (6,460 p.)

Słuszna uwaga smiley

Ale dorzuciłem IoC w ramach ciekawostki.

komentarz 3 kwietnia 2021 przez tomasz12345 Użytkownik (750 p.)

@CSSoup,

 

Okej, ale skoro tak to czy dobrze rozumiem ze chodzi.., że jeśli mam klasę zależną od innej klasy to zeby  ,, wstrzyknąć obiekt,, do innej klasy to zamiast tworzyc w nim nowy obiekt to tworze zmienną typu interfejs i do niej przypisuje instancję obiektu? załóżmy że klasa implementuje inną klasę która odpowiada za sposób podłączenia do ,, bazy danych,,. Jedna z klas zapisuje wszystko lokalnie np. w kolekcjach, a druga podłącza bazę danych SQL. Plusem takiego rozwiązania jest to że moge wtedy podmienić tylko klasę? i teraz moje pytanie :

 

w ASP.NET za przypisanie danej klasy do metod interfejsów odpowiada ConfigureServices? ( czyli wystarczy tam podmienić klasę i nie trzeba nic zmieniać w klasie zależnej )

 

a w springu? gdzie przypisuje się że jeśli mamy dwie klasy to chcemy uzywac implementacji jednej ?

Podobne pytania

0 głosów
1 odpowiedź 294 wizyt
pytanie zadane 3 lutego 2021 w Java przez Comparion Obywatel (1,810 p.)
0 głosów
1 odpowiedź 120 wizyt
pytanie zadane 12 grudnia 2023 w C# przez MisticVoid Początkujący (490 p.)
0 głosów
0 odpowiedzi 255 wizyt
pytanie zadane 18 listopada 2021 w C# przez Zaba096 Początkujący (260 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...