Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
4
rozdział1PodstawyWstrzykiwaniazależności:co,jakidlaczego
lubrozwarstwić.Jeśliprzytrafisiętonamniemamowyouratowaniusosu.Samproces
przygotowaniazajmujeokoło45minut,więcjeżelipolegniesięprzypierwszejpróbie,
możesięokazać,żezabraknieczasunakolejną.Jednakwszyscyszefowiekuchnipotra-
fiąprzyrządzićsosberneński.Ucząsiętegowtrakcieprzygotowańdoswojegozawodu
izawszepowtarzają,żeprzygotowaniewspomnianegososuniejesttakietrudne.
Nietrzebabyćprofesjonalnymkucharzem,żebyzrobićsosberneński.Każdy,kto
uczysięgoprzyrządzać,musichociażrazzrobićgoźle,ale,kiedyjużzałapie,ococho-
dzi,będzieprzygotowywałpysznysoszakażdymrazem.NaszymzdaniemWstrzykiwa-
niezależnościjestjaksosberneński.Wzorzecuważanyjestzatrudnyijeślinieuda
namsiępróbajegoużycia,możliwe,żeniebędziesięmiałowięcejczasunakolejną.
DEFINICJA
Wstrzykiwaniezależnościtozestawzasadiwzorcówprojektowych,który
pozwalanastworzenieluźnopowiązanegokodu.
Mimoobaw,niepewnościiwątpliwości(Fear,uncertainty,anddoubt,
FUD
),którepoja-
wiająsięprzyDI,łatwosięgonauczyć,porównywalniejakwprzypadkuprzyrządzania
sosuberneńskiego.Wtrakcienaukimożnapopełniaćbłędy,alekiedyopanujesię
technikę,nigdyjużichniepowtórzyszprzystosowaniuDI.
StackOverflow,stronazpytaniamiiodpowiedziamidotyczącymitworzeniaopro-
gramowania,odpowiadanapytanie„JakwytłumaczyćWstrzykiwaniezależnościpięcio-
latkowi?”.NajwyżejocenianaodpowiedźzostałazamieszczonaprzezJohnaMunscha
ioferujezadziwiającocelnąanalogięskierowanądo(wymyślonego)pięcioletniego
ciekawskiego1:
Kiedyidzieszsamcośwziąćzlodówki,możeszspowodowaćjakieśproblemy.Możeszzostawić
niedomkniętedrzwi,możeszwyciągnąćcoś,comamalubtataniechcą,żebyśjadł.Możesz
teższukaćczegoś,czegoniemamywlodówcealbocostraciłoswojądatęprzydatności.
ZamiasttegopowinieneśpowiedziećoswojejpotrzebiefiChcęczegośsięnapićdomojego
obiadu”iwtedytomyzajmiemysiętymtak,żegdyusiądzieszdojedzenia,dostanieszcoś
dopicia.
Wświecietworzeniaobiektowegooprogramowaniaoznaczato,żewspółpracujące
klasy(wspomnianypięciolatek)powinnypolegaćnainfrastrukturze(rodzicach)wcelu
zapewnienianiezbędnychusług.
UWAGA
Wterminologii
DI
częstomówimyousługachikomponentach.Usługa
tozzasady
ABSTRAKCJA
,definicjaczegoś,coświadczyusługę.Implementacja
ABSTRAKCJI
nazywanajestczęstokomponentemklasą,którazawierawłasnąlogikę.
1
Zob.J.Munschetal.(2009),HowtoexplainDependencyInjectiontoa5-yearold?[online].Dostęp:
https://stackoverow.com/questions/1638919/how-to-explain-dependency-injection-to-a-5-
-year-old.