Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
ZasadapodstawieniaLiskov
ZasadaLSPokreśla,żedowolnypodtyppowinienbyćłatwozastępowalnyelementem
występującymniżejwdrzewieobiektów,bezefektówubocznych.Naprzykładmodel
samochodumożnapodstawićzamiastrzeczywistegosamochodu.
Zasadarozdzieleniainterfejsów
ZasadaISPstwierdza,żewystępowaniewieluinterfejsówspecyficznychdlaklientówjest
lepszeniżogólnyinterfejsdlawszystkichklientów.Tazasadadotyczyupraszczaniawy-
mianydanychpomiędzyróżnymielementami.Dobrymprzykłademjestsegregowanie
śmiecinaorganiczne,doponownegoprzetworzeniaipozostałeodpady.Zamiastjednego
dużegokubła,mamytrzydlaposzczególnychtypówśmieci.
Zasadaodwróceniazależności
ZasadaDIPradzinampolegaćnaabstrakcjach,anienaelementachkonkretnych.Mówi
nam,żepowinniśmybudowaćdrzewodziedziczeniaobiektów.Przykładużytyworygi-
nalnejpracy7RobertaMartinawyjaśnia,żepowinniśmyutworzyćklasę
KeyboardReader
dziedziczącąpoogólnejklasie
Reader
,zamiastumieszczaćwszystkowjednejklasie.Pasuje
toteżdobrzedoradyArthuraRieladotyczącejunikaniaboskichklas,pochodzącejzjego
pracyHeurystykaprojektowaniazorientowanegoobiektowo.Choćmoglibyśmybezpo-
średnioprzylutowaćprzewódprowadzącyzgitarydowzmacniacza,byłobytopewnie
niewydolneiniebrzmiałobyzbytdobrze.
ZestawzasadSOLIDprzeszedłpróbęczasuizostałprzedstawionywwie-
luksiążkachautorstwaMartinaiFeathersa,atakżepojawiłsięwksiążce
SandiMetzPraktyczneprojektowaniezorientowaneobiektowowjęzyku
Ruby8.Zestawtenmasłużyćjakowskazówkiiprzypominaćnamopro-
stychsprawachprzyprogramowaniu,abytworzonyprzeznaskodbył
jaknajlepszy.Wskazówkitepomagająpisaćpoprawnearchitektonicznie
oprogramowanie.
TestowaniealboTDD
Wewczesnychdniachlotnictwapilocinieużywalilistkontrolnychdosprawdzania,czy
samolotjestgotowydostartu.WksiążceTeRightStulTomWolfepisał,żewiększość
wczesnychpilotówtestowychtakichjakChuckYeagerkierowałosięwyczuciemiswoim
7RobertMartin,nTeDependencyInversionPrinciple”
,http://bit.ly/the-DIP
.
8http://poodr.info/
4
|
Rozdział1:Wprzybliżeniuprawdopodobniepoprawneoprogramowanie