Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
30
rozdział1PodstawyWstrzykiwaniazależności:co,jakidlaczego
Odnoszeniesiękonteneradi
kontenerydi
samewsobiemogądotyczyćalbo
stabilnychzależności
,albo
niestabilnych
zależnych
.Wytycznąjestto,czyktośchcejezmienić.Bazowanieswojejaplikacjinajakimś
konkretnymkontenerzediwiążesięzryzykiemutknięciawswoimwyborzenacałyczas
życiaaplikacji.Jesttokolejnyzpowodów,dlaktóregopowinnosięograniczaćdoużycia
konteneratylkodomiejscastartuaplikacji.Tylkopoczątekaplikacjipowinienodnosićsię
dokonteneradi.
Ogólnie,ZALEŻNOŚCImogąbyćuważanezastabilneprzezwykluczanie.stabilne,
jeślinieniestabilne.
1.3.2.niestabilnezależności
WprowadzanieSZWÓWdoaplikacjitododatkowapraca,dlategopowinnosięrobićto
tylko,kiedyjesttoniezbędne.Możeistniećnawetwięcejniżjedenpowódpotrzeby
odizolowaniajakiejś
ZALEŻNOŚCI
za
SZWEM
,aleonemocnozwiązanezkorzyściami
luźnegopowiązania(omówionymiwsekcji1.2.1).
Takie
ZALEŻNOŚCI
mogąbyćrozpoznanepoichtendencjidonaruszaniajednego
lubwięcejztychkorzyści.Nietakżestabilne,ponieważniezapewniająodpowied-
niejpodstawydlaaplikacji,awięcwzwiązkuztymnazywamyje
NIESTABILNYMIZALEŻ-
NOŚCIAMI
.
ZALEŻNOŚĆ
powinnabyćuważanazaniestabilną,jeśliktórykolwiekpodpunkt
ztegokryteriumjestdlaniejprawdziwy:
¡
ZALEŻNOŚĆ
wprowadzawymógstworzeniaikonfiguracjiśrodowiskawykonaniadlaapli-
kacji.Niejesttotak,żekonkretnetypy.
NET
niestabilne,aleraczejniestabilne
jestto,cooneimplikująnatematśrodowiskawykonania.
Bazydanychtodobryprzykładtypów
BCL
,którerównież
NIESTABILNYMIZALEŻ-
NOŚCIAMI
,arelacyjnebazydanycharchetypicznymprzykładem.Jeśliktośnie
schowarelacyjnejbazydanychza
SZWEM
,niebędziemógłjejnigdyzamienićprzy
wykorzystaniujakiejkolwiektechnologii.Jesttakżetrudnostworzyćiuruchomić
automatycznietestyjednostkowe.(NawetjeślibibliotekaklientaMicrosoft
SQL
Serverjesttechnologiązawartąw
BCL
,jejużycieimplikujerelacyjnąbazędanych).
Innezasobytypuout-of-process”,takiejak:kolejkikomunikatów,webserwisy,anawet
systemyplików,zaliczająsiędotejkategorii.Symptomamitegotypu
ZALEŻNOŚCI
są:
brakpóźnegopowiązaniairozszerzalności,atakżebrak
TESTOWALNOŚCI
.
¡ZALEŻNOŚĆnadalnieistniejelubjestwciążwtworzeniu.
¡ZALEŻNOŚĆniejestzainstalowananawszystkichurządzeniachworganizacjitworzącej.
Możetobyćspowodowanedrogiminiezależnymibibliotekamilub
ZALEŻNOŚ-
CIAMI,któreniemogąbyćzainstalowanenawszystkichsystemachoperacyjnych.
NajczęstszymsymptomemjestbrakTESTOWALNOŚCI.
¡
ZALEŻNOŚĆ
zachowujesięniedeterministycznie.Tenaspektjestwszczególnościważny
przytestachjednostkowych,ponieważwszystkietestymusząbyćdeterministyczne.