SPIS TREŚCI
O autorze 9
O korektorze merytorycznym 11
Rozdział 1. Wprowadzenie 13
- Preliminaria 14
- Dla kogo jest ta książka? 14
- O przykładach kodu 14
- O narzędziach programistycznych 15
- Ważne koncepcje 15
- Curiously Recurring Template Pattern (dosł. ciekawie rekurencyjny wzorzec szablonu) 15
- Dziedziczenie domieszek 16
- Właściwości 16
- Zasady projektowania SOLID 17
- Zasada pojedynczej odpowiedzialności 17
- Zasada otwarty-zamknięty 19
- Zasada podstawiania Liskov 23
- Zasada segregacji interfejsów 25
- Zasada odwracania zależności 27
- Czas na wzorce! 29
CZĘŚĆ I. WZORCE KREACYJNE 31
Rozdział 2. Budowniczy 35
- Scenariusz 35
- Prosty budowniczy 36
- Płynny budowniczy 37
- Komunikowanie zamiaru 37
- Budowniczy w stylu języka Groovy 39
- Złożony budowniczy 40
- Podsumowanie 43
Rozdział 3. Fabryki 45
- Scenariusz 45
- Metoda fabrykująca 46
- Fabryka 47
- Fabryka wewnętrzna 48
- Fabryka abstrakcyjna 49
- Fabryka funkcyjna 51
- Podsumowanie 52
Rozdział 4. Prototyp 55
- Konstrukcja obiektów 55
- Zwykła duplikacja 56
- Duplikacja za pomocą konstruktora kopiującego 56
- Serializacja 58
- Fabryka prototypów 60
- Podsumowanie 61
Rozdział 5. Singleton 63
- Singleton jako obiekt globalny 63
- Klasyczna implementacja 64
- Bezpieczeństwo wątkowe 66
- Kłopoty z singletonami 66
- Singletony a IoC 69
- Monostat 69
- Podsumowanie 70
CZĘŚĆ II. WZORCE STRUKTURALNE 71
Rozdział 6. Adapter 73
- Scenariusz 73
- Adapter 74
- Tymczasowe stany adaptera 76
- Podsumowanie 78
Rozdział 7. Most 79
- Idiom Pimpl 79
- Most 81
- Podsumowanie 82
Rozdział 8. Kompozyt 85
- Właściwości wspierane przez tablice 86
- Grupowanie obiektów graficznych 88
- Sieci neuronowe 89
- Podsumowanie 92
Rozdział 9. Dekorator 93
- Scenariusz 93
- Dekorator dynamiczny 94
- Dekorator statyczny 96
- Dekorator funkcyjny 98
- Podsumowanie 100
Rozdział 10. Fasada 103
- Jak działa terminal 103
- Zaawansowany terminal 104
- Gdzie jest fasada? 105
- Podsumowanie 106
Rozdział 11. Pyłek 107
- Nazwy użytkowników 107
- Boost.Flyweight 109
- Zakresy ciągów 109
- Podejście naiwne 110
- Implementacja przy użyciu wzorca Pyłek 111
- Podsumowanie 112
Rozdział 12. Pełnomocnik 113
- Wskaźniki inteligentne 113
- Pełnomocnik właściwości 114
- Pełnomocnik wirtualny 115
- Pełnomocnik komunikacji 116
- Podsumowanie 118
CZĘŚĆ III. WZORCE ZACHOWAŃ 121
Rozdział 13. Łańcuch odpowiedzialności 123
- Scenariusz 123
- Łańcuch metod 124
- Łańcuch brokerów 126
- Podsumowanie 129
Rozdział 14. Polecenie 131
- Scenariusz 131
- Implementacja wzorca Polecenie 132
- Operacje cofania 133
- Polecenia złożone 135
- Rozdzielanie zapytań od poleceń 137
- Podsumowanie 139
Rozdział 15. Interpreter 141
- Ewaluator wyrażeń numerycznych 142
- Leksykalizacja 142
- Parsowanie 143
- Wykorzystanie leksera i parsera 146
- Parsowanie za pomocą Boost.Spirit 146
- Drzewo składni abstrakcyjnej 147
- Parser 148
- Wyświetlacz 148
- Podsumowanie 149
Rozdział 16. Iterator 151
- Iteratory w bibliotece standardowej 151
- Przeglądanie drzewa binarnego 153
- Iteracja przy użyciu koprocedur 156
- Podsumowanie 157
Rozdział 17. Mediator 159
- Chat room 159
- Mediator ze zdarzeniami 162
- Podsumowanie 164
Rozdział 18. Memento 167
- Rachunek bankowy 167
- Cofnij i ponów 169
- Podsumowanie 171
Rozdział 19. Pusty obiekt 173
- Scenariusz 173
- Pusty obiekt 174
- Wskaźnik shared_ptr nie jest pustym obiektem 175
- Ulepszenia projektu 175
- Niejawny pusty obiekt 175
- Podsumowanie 176
Rozdział 20. Obserwator 177
- Obserwatory właściwości 177
- Observer<T> 178
- Observable<T> 179
- Łączenie obserwatorów z obserwowanymi obiektami 180
- Problemy z zależnościami 181
- Anulowanie subskrypcji i bezpieczeństwo wątków 182
- Wielobieżność 183
- Obserwator z biblioteki Boost.Signals2 185
- Podsumowanie 185
Rozdział 21. Stan 187
- Przejścia między stanami zależne od stanu 187
- Maszyna stanów – „samoróbka” 190
- Maszyny stanów z wykorzystaniem biblioteki Boost.MSM 192
- Podsumowanie 195
Rozdział 22. Strategia 197
- Strategia dynamiczna 197
- Strategia statyczna 200
- Podsumowanie 201
Rozdział 23. Metoda szablonowa 203
- Symulacja gry 203
- Podsumowanie 205
Rozdział 24. Wizytator 207
- Nachalny wizytator 208
- Wyświetlacz reflektywny 209
- Co to jest dysponowanie? 210
- Klasyczny wizytator 212
- Implementacja dodatkowego wizytatora 213
- Wizytator acykliczny 214
- Warianty i funkcja std::visit 216
- Podsumowanie 217
CZĘŚĆ IV. DODATEK A. FUNKCJONALNE WZORCE PROJEKTOWE 219
Rozdział 25. Monada Maybe 221
Opinie
Na razie nie ma opinii o produkcie.