Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
18
WojciechFliegner
cech,aninawetwszystkierazem,niestanowiąjegotożsamości.Produktwydaje
sięmiećtożsamośćniezwiązanązwartościamijegoatrybutów.Cowięcej,je-
steśmywstaniezidentyfikowaćproduktniezależnieodjegoformywdanej
chwili:czyjestonreprezentowanyprzezobiektwpamięci,rekordwbazieda-
nychalbonawetwyświetlanytekst.Zatemkluczowymfaktem,poktórymmo-
żemyrozpoznaćencjewczasiemodelowaniadziedziny,jestposiadaniewłasnej
tożsamościniezależnieodwartościatrybutówibieżącejformy.Nienależytutaj
oczywiściemylićidentyfikacjiencjizidentyfikacjąobiektówpoprzezadres
wpamięci.Jestmożliwe,żebędąistniaływpamięcidwaobiektyreprezentujące
tęsamąencję,choćwwieluprzypadkachbyłabytosytuacjaniepożądana
5.
Prawidłowerozpoznanieencjiiodwzorowanieichwaplikacjijestjednym
zgłównychkrokówskutecznegomodelowaniazgodniezDomain-DrivenDe-
sign.Wmodeludlakażdegorodzajuencjipowinnaistniećodpowiadającamu
klasa.Każdyobiekttakiejklasymusiposiadaćinformacjeoswojejtożsamości,
pozwalającezidentyfikowaćencję,którajestprzezniegoreprezentowana.Na-
leżyjednakuważać,żebyniewpaśćwpewneniebezpiecznepułapki,wynika-
jąceznadmiernegostosowaniazasady„rzeczownikówiczasowników”,która
wprzypadkuencjisamasięnasuwa.Wbrewtradycyjnymprzekonaniom,nie
każdy„ważny”rzeczownikodkrytywopisieproblemubiznesowegostanowi
oddzielnąencjęiniekażdypowinienbyćodwzorowanynaklasęmodelu.Po-
dobnieniekażdyczasownikpowinienautomatyczniestawaćsięmetodątej
klasy.Należypamiętać,żestworzeniegłębokiegoielastycznegomodelupolega
napoprawnymzdefiniowaniuodpowiedzialnościizależnościmiędzyobiektami
orazprzyjęciuodpowiedniejabstrakcji.Ważnejestkierowaniesięogólnymi
zasadamiprojektowaniazorientowanegoobiektowoizastosowaniespraw-
dzonychrozwiązań−wzorcówprojektowych
6.
2.3.Valueobjects
Pozaencjamiistniejątakieelementymodelu,którenieposiadająwłasnej
tożsamości.Służąonedocharakterystykiencji.Sąrozróżnialnetylkonapod-
stawieswojejwartości,adwaobiektyotejsamejwartościbędąreprezentować
tensamvalueobject
7.Najprostszymprzykłademmogąbyćliczbycałkowite.
5Jesttojedenztychproblemów,choćakuratjedenzprostszych,którerozwiązujegoO/Rmapper.
6AkuratsamEvansniepoświęcatemuzbytwieleuwagiwswojejpracy.
7Wtejpracyużywasięangielskiegookreślenia„valueobject”zewzględunabrakdobrejpropozycjiprze-
tłumaczeniagonajęzykpolski.