Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
14
|Rozdział1:Pracaztypamidanych
poziomieinstancji(patrzpunkt10);warunektenjestzawszespełnionywnie-
zmiennychtypach.
Wpraktycebardzotrudnebyłobyuczynieniekażdegotypuniezmiennym.
Todlategozalecenietomazastosowaniedotypówatomowychioniezmien-
nychwartościach.Możemywykonaćrozkładnaszychtypównastruktury,
którewnaturalnysposóbtworząpojedynczybyt.Przykłademtakiegobytu
możebyćtypprzeznaczonydoprzechowywaniaadresów.Adresjestpojedyn-
cząrzeczą,złożonązwielupowiązanychpól,przyczymzmianazawartości
jednegopolanajprawdopodobniejoznaczazmianyrównieżwpozostałych
polach.Przeciwieństwemtegoprzykładujesttypprzeznaczonydoprzecho-
wywaniaklientów,któryniejesttypematomowym.Takitypbędziezapewne
zawierałwieleporcjiinformacjiadres,nazwę,jedenlubwięcejnumerów
telefonicznychikażdyztychniezależnychelementówinformacjimożeulec
zmianie.Klientmożezmienićnumerytelefonów,nieprzeprowadzającsię.
Możezmienićsiedzibę,zachowująctensamnumertelefonu.Klientmożeteż
zmienićswojąnazwę(nazwisko),bezprzeprowadzaniasięanizmianynumeru
telefonu.Obiektklientaniejestatomowy;jestzbudowanyzwieluróżnych
niezmiennychtypówprzyużyciuzłożeniaadresu,nazwylubkolekcjipar
numertelefonu/jegorodzaj.Typyatomowepojedynczymijednostkami:
wnaturalnymdziałaniubędziemywymieniaćcałązawartośćtypuatomowego.
Zmianatylkojednegospośródskładowychpóljestzdarzeniemwyjątkowym.
Ototypowaimplementacjaadresujakotypuzmiennego:
//ZmiennastrukturaAddress
publicstructAddress
{
privatestringstate;
privateintzipCode;
//Polegamynadomyślnymkonstruktorzegenerowanym
//przezsystem
publicstringLine1{get;set;}
publicstringLine2{get;set;}
publicstringCity{get;set;}
publicstringState
{
get:>state;
set
{