Russ Olsen ruby. wzorce projektowe helion.pdf

(7022 KB) Pobierz
888444094.001.png
8
RUBY. WZORCE PROJEKTOWE
Wicej o acuchach .......................................................................................... 60
Symbole ............................................................................................................... 63
Tablice ................................................................................................................. 63
Tablice mieszajce ............................................................................................. 65
Wyraenia regularne ........................................................................................ 65
Nasza pierwsza klasa ........................................................................................ 66
Operacje na zmiennych egzemplarzy ........................................................... 68
Obiekt pyta: Kim jestem? ................................................................................. 70
Dziedziczenie, podklasy i nadklasy ............................................................... 71
Opcje argumentów ........................................................................................... 72
Moduy ................................................................................................................ 73
Wyjtki ................................................................................................................ 76
Wtki ................................................................................................................... 77
Zarzdzanie odrbnymi plikami z kodem ródowym .............................. 78
Podsumowanie .................................................................................................. 79
CZ II
WZORCE PROJEKTOWE W JZYKU RUBY ..................................81
Rozdzia 3.
Urozmaicanie algorytmów
za pomoc wzorca projektowego Template Method ................................. 83
Jak stawi czoo typowym problemom .......................................................... 84
Izolowanie elementów zachowujcych dotychczasow form ................ 85
Odkrywanie wzorca projektowego Template Method .............................. 88
Metody zaczepienia .......................................................................................... 89
Gdzie si waciwie podziay wszystkie te deklaracje? ............................... 92
Typy, bezpieczestwo i elastyczno ............................................................. 93
Testy jednostkowe nie maj charakteru opcjonalnego ............................... 95
Uywanie i naduywanie wzorca projektowego Template Method ....... 97
Szablony w praktycznych zastosowaniach ................................................... 98
Podsumowanie .................................................................................................. 99
Rozdzia 4.
Zastpowanie algorytmu strategi .............................................................. 101
Deleguj, deleguj i jeszcze raz deleguj .......................................................... 102
Wspódzielenie danych przez kontekst i strategi .................................... 104
Jeszcze raz o kaczym typowaniu .................................................................. 106
Obiekty Proc i bloki kodu .............................................................................. 107
Krótka analiza kilku prostych strategii ........................................................ 111
Uywanie i naduywanie wzorca projektowego Strategy ....................... 112
Wzorzec Strategy w praktycznych zastosowaniach .................................. 113
Podsumowanie ................................................................................................ 114
Rozdzia 5.
Jak by na bieco dziki wzorcowi Observer ......................................... 117
Trzymamy rk na pulsie .............................................................................. 117
Jak skuteczniej trzyma rk na pulsie? ...................................................... 119
Wyodrbnianie mechanizmu umoliwiajcego obserwacj .................... 122
Stosowanie bloków kodu w roli obserwatorów ......................................... 125
Odmiany wzorca projektowego Observer .............................................. 126
SPIS TRECI
9
Uywanie i naduywanie wzorca projektowego Observer ..................... 127
Wzorzec Observer w praktycznych zastosowaniach ................................ 129
Podsumowanie ................................................................................................ 130
Rozdzia 6.
Budowa wikszej caoci z czci za pomoc wzorca Composite ......... 133
Cao i czci ................................................................................................... 134
Tworzenie kompozytów ................................................................................ 136
Doskonalenie implementacji wzorca Composite
z wykorzystaniem operatorów .................................................................. 140
A moe tablica w roli kompozytu? ............................................................... 141
Kopotliwe rónice .......................................................................................... 141
Wskaniki w obie strony ................................................................................ 142
Uywanie i naduywanie wzorca projektowego Composite .................. 143
Kompozyty w praktycznych zastosowaniach ............................................ 145
Podsumowanie ................................................................................................ 147
Rozdzia 7.
Przeszukiwanie kolekcji z wykorzystaniem wzorca Iterator ................ 149
Iteratory zewntrzne ...................................................................................... 149
Iteratory wewntrzne ..................................................................................... 152
Iteratory wewntrzne kontra iteratory wewntrzne ................................ 153
Niezrównany modu Enumerable ................................................................ 154
Uywanie i naduywanie wzorca projektowego Iterator ........................ 156
Iteratory w praktycznych zastosowaniach ................................................. 158
Podsumowanie ................................................................................................ 161
Rozdzia 8.
Doprowadzanie spraw do koca za pomoc wzorca Command ........... 163
Eksplozja podklas ............................................................................................ 164
Prostsze rozwizanie ...................................................................................... 165
Stosowanie bloków kodu w roli polece ..................................................... 166
Rejestrowanie polece .................................................................................... 167
Wycofywanie operacji za pomoc wzorca Command .............................. 170
Kolejkowanie polece .................................................................................... 173
Uywanie i naduywanie wzorca projektowego Command .................. 174
Wzorzec projektowy Command w praktycznych zastosowaniach ........ 175
Migracje w ramach interfejsu ActiveRecord ................................... 175
Madeleine ............................................................................................. 176
Podsumowanie ................................................................................................ 179
Rozdzia 9.
Wypenianie luk z wykorzystaniem wzorca Adapter ............................. 181
Adaptery programowe ................................................................................... 182
Minimalne niedocignicia ............................................................................ 184
Czy alternatyw moe by adaptowanie istniejcych klas? ..................... 186
Modyfikowanie pojedynczych obiektów .................................................... 187
Adaptowa czy modyfikowa? ..................................................................... 188
Uywanie i naduywanie wzorca projektowego Adapter ....................... 190
Adaptery w praktycznych zastosowaniach ................................................ 190
Podsumowanie ................................................................................................ 191
10
RUBY. WZORCE PROJEKTOWE
Rozdzia 10.
Tworzenie zewntrznego reprezentanta naszego obiektu
z wykorzystaniem wzorca Proxy ................................................................. 193
Rozwizaniem s porednicy ........................................................................ 194
Porednik ochrony .......................................................................................... 196
Porednicy zdalni ............................................................................................ 197
Porednicy wirtualni jako rodek rozleniwiajcy ...................................... 198
Eliminacja najbardziej uciliwych
elementów implementacji poredników .................................................. 200
Metody i przekazywanie komunikatów ......................................... 201
Metoda method_missing ................................................................... 202
Wysyanie komunikatów ................................................................... 203
Bezbolesne implementowanie poredników ................................. 203
Uywanie i naduywanie poredników ...................................................... 206
Wzorzec Proxy w praktycznych zastosowaniach ...................................... 207
Podsumowanie ................................................................................................ 208
Rozdzia 11.
Doskonalenie obiektów za pomoc wzorca Decorator ........................... 211
Dekoratory: lekarstwo na brzydki kod ........................................................ 212
Dekoracja formalna ......................................................................................... 217
Jak uproci model delegacji zada ............................................................. 218
Dynamiczna alternatywa dla wzorca projektowego Decorator .............. 219
Opakowywanie metod ....................................................................... 219
Dekorowanie za pomoc moduów ................................................. 220
Uywanie i naduywanie wzorca projektowego Decorator .................... 221
Dekoratory w praktycznych zastosowaniach ............................................. 222
Podsumowanie ................................................................................................ 223
Rozdzia 12.
Jak zyska pewno, e to ten jedyny,
z wykorzystaniem wzorca Singleton .......................................................... 225
Jeden obiekt, dostp globalny ....................................................................... 225
Zmienne i metody klasowe ........................................................................... 226
Zmienne klasowe ................................................................................ 226
Metody klasowe .................................................................................. 227
Pierwsza próba opracowania singletonu w Ruby ..................................... 228
Zarzdzanie jedynym obiektem ....................................................... 229
Upewnianie si, e istnieje tylko jeden ........................................... 230
Modu Singleton .............................................................................................. 231
Singletony leniwe i chciwe ............................................................................ 232
Konstrukcje alternatywne wzgldem klasycznego singletonu ............... 232
Zmienne globalne jako singletony ................................................... 232
Klasy jako singletony .......................................................................... 233
Moduy jako singletony ..................................................................... 235
SPIS TRECI
11
Pasy bezpieczestwa kontra kaftan bezpieczestwa ................................ 236
Uywanie i naduywanie wzorca projektowego Singleton .................... 237
Czy singletony nie s przypadkiem
zwykymi zmiennymi globalnymi? ............................................... 237
Waciwie iloma singletonami dysponujemy? ............................... 238
Singletony i niezbdna wiedza ......................................................... 238
Eliminowanie utrudnie zwizanych z testowaniem .................. 240
Singletony w praktycznych zastosowaniach .............................................. 241
Podsumowanie ................................................................................................ 242
Rozdzia 13.
Wybór waciwej klasy za pomoc wzorca Factory ................................. 243
Inny rodzaj kaczego typowania .................................................................... 244
Powrót wzorca projektowego Template Method ...................................... 246
Sparametryzowane metody wytwórcze ...................................................... 248
Klasy to po prostu obiekty ............................................................................. 251
Ze wieci: nasz program podbi wiat ........................................................ 252
Grupowe tworzenie obiektów ...................................................................... 253
Klasy to po prostu obiekty (raz jeszcze) ...................................................... 255
Korzystanie z nazw ......................................................................................... 257
Uywanie i naduywanie wzorców fabryk ................................................ 258
Wzorce fabryk w praktycznych zastosowaniach ....................................... 258
Podsumowanie ................................................................................................ 260
Rozdzia 14.
Uproszczone konstruowanie obiektów
z wykorzystaniem wzorca Builder .............................................................. 263
Budowa komputerów ..................................................................................... 264
Klasy budowniczych polimorficznych ........................................................ 267
Klasy budowniczych mog te zapewni
bezpieczestwo tworzenia obiektów ........................................................ 270
Klasy budowniczych wielokrotnego uytku .............................................. 270
Lepsza implementacja budowniczych
z wykorzystaniem magicznych metod ..................................................... 271
Uywanie i naduywanie wzorca projektowego Builder ........................ 272
Klasy budowniczych w praktycznych zastosowaniach ............................ 273
Podsumowanie ................................................................................................ 274
Rozdzia 15.
czenie systemu z wykorzystaniem interpretera ................................... 275
Jzyk dostosowany do realizowanego zadania .......................................... 276
Konstruowanie interpretera .......................................................................... 277
Interpreter odnajdywania plików ................................................................ 279
Odnajdywanie wszystkich plików ................................................... 279
Wyszukiwanie plików wedug nazw .............................................. 280
Wielkie pliki i pliki zapisywalne ....................................................... 281
Bardziej zoone operacje wyszukiwania z uwzgldnieniem
logicznej negacji, koniunkcji i alternatywy ................................. 282
Zgłoś jeśli naruszono regulamin