Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Cowstrzykiwać,aczegoniewstrzykiwać
29
cd.ramki
SZEWwaplikacjiHelloDI!zsekcji1.2
MessageWriter
tworzy/używa
Salutation
Console-
Main()
SZEW
AplikacjaHelloDI!zawiera
SZEWmiędzyklasamiSalutation
iConsoleMessageWriter,
ponieważklasaSalutation
piszejedynieprzezABSTRAKCJĘ
interfejsuIMessageWriter
1.3.1.stabilnezależności
Wielemodułówwbibliotece
BCL
ipozaniąstanowizagrożeniedlastopniamodular-
nościaplikacji.Zawierająonefunkcjonalności,którenadająsiędoponownegoużycia
isprawiają,żekodjestbardziejzwięzły.ModułyBCLzawszedostępnedlaaplikacji,
ponieważwymagaona.NETFrameworkwceluuruchomienia.Iteżdlategożejużist-
nieją,problemrównoległegorozwojunieodnosisiędotakichmodułów.Zawszemożna
użyćponowniejakiejśbibliotekiBCLwinnejaplikacji.
Domyślniemożnazałożyć,żewiększość(aleniewszystkie)typydefiniowanewBCL
bezpiecznelub
STABILNYMIZALEŻNOŚCIAMI
.Nazywamyjestabilnymi,ponieważ
jużnamiejscu,majątendencjędobyciawsteczniekompatybilnymiorazwywoła-
nieichskutkujedeterministycznymirezultatami.Większość
STABILNYCHZALEŻNOŚCI
totypy
BCL
,aleinne
ZALEŻNOŚCI
równieżmogąbyćstabilne.Ważnymikryteriami
dlaSTABILNYCHZALEŻNOŚCIsą:
¡Ichklasalubmodułjużistnieją.
¡
Oczekujesię,żenowewersjeniebędązawieraćzmianłamiącychkompatybilność.
¡Typy,októrychmowa,zawierająalgorytmydeterministyczne.
¡
Nigdynieoczekujesiępotrzebyzmiany,zwinięcia,dekorowanialub
PRZECHWY-
TYWANIAklasylubmodułunainne.
Innymiprzykładami,októrychmożnawspomnieć,wyspecjalizowanebiblio-
teki,któreenkapsulująalgorytmywykorzystywanewrozwijanejaplikacji.Naprzykład
jeślitworzysięaplikację,którazajmujesięchemią,możnaodnosićsiędoniezależnej
bibliotekizawierającejfunkcjonalnośćzwiązanązchemią.