• 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
0 głosów
295 wizyt
pytanie zadane 3 lutego 2021 w Java przez Comparion Obywatel (1,810 p.)
Czy ktoś bylby w stanie wyjasnic w jak najprostrzy sposob, jak działa wstrzykiwanie zależności, podajac jakis najbardziej banalny przykład? Przejzalemz 20 stron i nie moge jakoś tego zrozumieć, moze za bardzo probuje rozłozyc to na czynniki pierwsze
komentarz 3 lutego 2021 przez tkz Nałogowiec (42,000 p.)
Na zasadzie interfejsu i przekazywania implementacji w parametrze?
komentarz 3 lutego 2021 przez Comparion Obywatel (1,810 p.)
to znaczy ja widziałem przykłady na podstawie klas, bez interfejsów, przynajmniej tak to zrozumiałem xD
komentarz 3 lutego 2021 przez tkz Nałogowiec (42,000 p.)
W "czystej" Javie wstrzykujesz zależność przez na przykład parametr w konstruktorze i w zasadzie tyle. Nie rozumiesz technicznej strony, czy czysto teoretycznej?
komentarz 3 lutego 2021 przez JakSky Stary wyjadacz (14,770 p.)

Na stronie Microsoftu jest to fajnie opisane:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection oczywiście tyczy się C#, ale w Javie obowiązuje taka sama koncepcja :)

1 odpowiedź

0 głosów
odpowiedź 3 lutego 2021 przez Wiciorny Ekspert (270,170 p.)

Wstrzykiwanie zależności (ang. dependency injection) jest konkretnym przypadkiem metodyki wytwarzania oprogramowania Odwrócenie sterowania polega na przekazaniu kontroli nad cyklem życia obiektów kontenerowi.

Czyli że co? A no wyobraź sobie że masz Samochód, i samochód ma w sobie OBIEKT SILNIK, i normalnie samochód żeby działał jest zależny od silnika, zamiast "nadawć inicjalizacje" silnikowi wewnątrz klasy Samochód, odwracasz zależność do tego, żeby obiekt wewnętrzny był inicjalizowany z poziomu ZEWNĘTRZNEGO wstrzyknięcia tzn dostarczasz implementacje, lub obiekt do samochodu z zewnątrz, a nie budujesz samochodu już z zaimplementowanym wewnątrz silnikiem 

Jest tak zwane wstrzykiwanie poprzez konstruktor.

public class ItemController {

    private ItemService itemService; 

    @Autowired
    public ItemController(ItemService itemService) {
        this.itemService = itemService;
    }
}

lub inne możliwości przez metode np  Mianowicie nie będziemy tworzyć obiektu Weather w każdym oknie, lecz będzie on przekazywany do konstruktora z zewnątrz. Takie przekazywanie zależności z zewnątrz nazywamy wstrzykiwaniem.
 

public class House {
 private Weather weather; // obiekt zalezny od House 
  
  public void setWeather(Weather weather) { 
      this.weahter = weather;
  }

}

 

 

Podobne pytania

+2 głosów
2 odpowiedzi 293 wizyt
pytanie zadane 24 marca 2021 w C# przez tomasz12345 Użytkownik (750 p.)
0 głosów
1 odpowiedź 404 wizyt
+3 głosów
2 odpowiedzi 618 wizyt
pytanie zadane 27 stycznia 2016 w Java przez nowszy94 Bywalec (2,320 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...