Nowoczesne projektowanie w C Uogolnione implementacje wzorcow projektowych.pdf
(
417 KB
)
Pobierz
Idź do
• Spis treści
• Przykładowy rozdział
• Skorowidz
Katalog książek
• Katalog online
• Zamów drukowany
katalog
Twój koszyk
• Dodaj do koszyka
Cennik i informacje
• Zamów informacje
o nowościach
• Zamów cennik
Czytelnia
• Fragmenty książek
online
Nowoczesne projektowanie w C++.
Uogólnione implementacje
wzorców projektowych
Autor: Andrei Alexandrescu
Tłumaczenie: Przemysław Szeremiota
ISBN: 978-83-246-3301-2
Tytuł oryginału:
Modern C++ Design: Generic
Programming and Design Patterns Applied
Format: 172×245, stron: 352
Korzystaj z nowoczesnych technik w C++!
• Jak korzystać z wzorców projektowych w C++?
• Jak stworzyć dokładnie jedną instancję obiektu?
• Jak używać inteligentnych wskaźników?
Język C++ jest obecny na rynku już niemal trzydzieści lat, a jednak nadal świetnie spełnia swoje
zadania. Jest powszechnie używany, a wręcz niezastąpiony w wielu dziedzinach programowania.
Wszędzie tam, gdzie potrzebna jest najwyższa wydajność oraz pełna kontrola nad zasobami
i przebiegiem programu, sprawdza się wyśmienicie. Wystarczy odrobina chęci, dobry podręcznik
i trochę czasu, aby wykorzystać pełną moc C++ w nowoczesnych technikach programowania.
Książkę, która Ci w tym pomoże, trzymasz właśnie w rękach. Czy znajdziesz czas i ochotę,
aby zgłębić zawartą w niej wiedzę? Gwarantujemy, że warto! W trakcie lektury dowiesz się,
jak zaimplementować w C++ najpopularniejsze wzorce projektowe. Dzięki nim błyskawicznie
oprogramujesz typowe rozwiązania. Nauczysz się tworzyć dokładnie jedną instancję obiektu oraz
zobaczysz, jak korzystać z fabryki obiektów czy inteligentnych wskaźników. Ponadto zapoznasz się
z technikami projektowania klas, asercjami w trakcie kompilacji oraz uogólnionymi funktorami.
Dzięki tej książce poczujesz na nowo satysfakcję z pisania programów w języku C++!
• Projektowanie klas
• Asercje czasu kompilacji
• Listy typów
• Alokowanie małych obiektów
• Funktory uogólnione
• Inteligentne wskaźniki
• Fabryka obiektów i fabryka abstrakcyjna
• Tworzenie dokładnie jednego obiektu – wzorzec singleton
• Multimetody
Czerp satysfakcję z korzystania z nowoczesnych technik programowania w C++!
Kontakt
Helion SA
ul. Kościuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl
© Helion 1991–2011
Spis tre ci
Przedmowy .....................................................................................................9
Wst p ...........................................................................................................13
Podzi kowania .............................................................................................19
I
Techniki ..............................................................................................................21
1.
Klasy konfigurowane wytycznymi ..............................................................23
1.1. Projektowanie oprogramowania — kl ska urodzaju? ...................................................................23
1.2. Pora ka interfejsu „wszechstronnego” .........................................................................................24
1.3. Ratunek w wielodziedziczeniu? ....................................................................................................26
1.4. Zalety szablonów ..........................................................................................................................26
1.5. Wytyczne i klasy wytycznych ......................................................................................................28
1.6. Wytyczne rozszerzone ..................................................................................................................32
1.7. Destruktory klas wytycznych .......................................................................................................33
1.8. Elementy opcjonalne w konkretyzacji cz ciowej ........................................................................34
1.9. à czenie klas wytycznych ............................................................................................................35
1.10. Klasy wytycznych a konfigurowanie struktury ...........................................................................37
1.11. Wytyczne zgodne i niezgodne ....................................................................................................38
1.12. Dekompozycja klas na wytyczne ................................................................................................40
1.13. Podsumowanie ............................................................................................................................42
2.
Techniki .......................................................................................................43
2.1. Asercje statyczne ..........................................................................................................................44
2.2. Cz ciowa specjalizacja szablonu ................................................................................................46
2.3. Klasy lokalne ................................................................................................................................48
2.4. Mapowanie staáych na typy ..........................................................................................................49
4
SPIS TRE CI
2.5. Odwzorowanie typu na typ ...........................................................................................................52
2.6. Wybór typu ...................................................................................................................................53
2.7. Statyczne wykrywanie dziedziczenia i mo liwo ci konwersji ......................................................55
2.8. TypeInfo .......................................................................................................................................58
2.9. NullType i EmptyType .................................................................................................................60
2.10. Cechy typów ...............................................................................................................................61
2.11. Podsumowanie ............................................................................................................................68
3.
Listy typów ..................................................................................................71
3.1. Listy typów — do czego? .............................................................................................................71
3.2. Definiowanie list typów ................................................................................................................73
3.3. Liniowe tworzenie list typów .......................................................................................................75
3.4. Obliczanie dáugo ci listy ..............................................................................................................76
3.5. Przygrywka ...................................................................................................................................77
3.6. Dost p swobodny (indeksowany) .................................................................................................77
3.7. Przeszukiwanie list typów ............................................................................................................79
3.8. Dopisywanie do listy typów .........................................................................................................80
3.9. Usuwanie typu z listy ...................................................................................................................81
3.10. Usuwanie duplikatów .................................................................................................................82
3.11. Zast powanie elementu na li cie typów .....................................................................................83
3.12. Cz ciowe porz dkowanie listy typów .......................................................................................84
3.13. Generowanie klas z list typów ....................................................................................................87
3.14. Podsumowanie ............................................................................................................................97
3.15. Listy typów — na skróty ............................................................................................................97
4.
Przydziaá pami ci dla niewielkich obiektów .............................................101
4.1. Domy lny alokator pami ci dynamicznej ...................................................................................102
4.2. Zasada dziaáania alokatora pami ci ............................................................................................102
4.3. Alokator maáych obiektów .........................................................................................................104
4.4. Chunk .........................................................................................................................................105
4.5. Alokator przydziaáów o staáym rozmiarze ..................................................................................108
4.6. Klasa SmallObjAlocator .............................................................................................................112
4.7. 3 x Tak ........................................................................................................................................113
4.8. Proste, skomplikowane, a potem znów proste ............................................................................116
4.9. Konfigurowanie alokatora ..........................................................................................................117
4.10. Podsumowanie ..........................................................................................................................118
4.11. Alokator maáych obiektów — na skróty ...................................................................................119
II
Komponenty .....................................................................................................121
5.
Uogólnione obiekty funkcyjne ...................................................................123
5.1. Wzorzec Command ....................................................................................................................124
5.2. Wzorzec Command w praktyce ..................................................................................................126
SPIS TRE CI
5
5.3. Byty funkcyjne w C++ ...............................................................................................................127
5.4. Szkielet szablonu klasy Functor .................................................................................................129
5.5. Delegowanie wywoáania Functor::operator() .............................................................................133
5.6. Funktory .....................................................................................................................................135
5.7. Raz a dobrze ...............................................................................................................................137
5.8. Konwersje typów argumentów i warto ci zwracanej ..................................................................139
5.9. Wska niki do metod ...................................................................................................................140
5.10. Wi zanie argumentów wywoáania ............................................................................................144
5.11. dania skomasowane ..............................................................................................................147
5.12. Z ycia wzi te (1) — du y koszt delegacji funkcji ...................................................................147
5.13. Z ycia wzi te (2) — alokacje na stercie ..................................................................................149
5.14. Szablon Functor w implementacji cofnij-powtórz ....................................................................150
5.15. Podsumowanie ..........................................................................................................................151
5.16. Functor — na skróty .................................................................................................................152
6.
Singletony ..................................................................................................155
6.1. Statyczne dane i statyczne funkcje nie czyni singletona ...........................................................156
6.2. Podstawowe idiomy C++ dla singletonów .................................................................................157
6.3. Wymuszanie unikalno ci ............................................................................................................158
6.4. Usuwanie singletona ...................................................................................................................159
6.5. Problem martwych referencji .....................................................................................................162
6.6. Problem martwych referencji (1) — singleton à la feniks ..........................................................164
6.7. Problem martwych referencji (2) — sterowanie ywotno ci ....................................................167
6.8. Implementowanie singletonów z ywotno ci ...........................................................................169
6.9. ycie w wielu w tkach ...............................................................................................................173
6.10. Podsumowanie do wiadcze ....................................................................................................176
6.11. Stosowanie szablonu SingletonHolder .....................................................................................181
6.12. Podsumowanie ..........................................................................................................................183
6.13. Szablon klasy SingletonHolder — na skróty ............................................................................183
7.
Inteligentne wska niki ...............................................................................185
7.1. Elementarz inteligentnych wska ników .....................................................................................186
7.2. Oferta ..........................................................................................................................................187
7.3. Przydziaá obiektów inteligentnych wska ników .........................................................................188
7.4. Metody inteligentnego wska nika ..............................................................................................190
7.5. Strategie zarz dzania posiadaniem .............................................................................................191
7.6. Operator pobrania adresu ............................................................................................................199
7.7. Niejawna konwersja na typ goáego wska nika ...........................................................................200
7.8. Równo ü i ró no ü ......................................................................................................................202
7.9. Porównania porz dkuj ce ...........................................................................................................207
7.10. Kontrola i raportowanie o bá dach ............................................................................................210
7.11. Wska niki niemodyfikowalne i wska niki do warto ci niemodyfikowalnych .........................211
7.12. Tablice ......................................................................................................................................212
7.13. Inteligentne wska niki a wielow tkowo ü ................................................................................213
7.14. Podsumowanie do wiadcze ....................................................................................................217
7.15. Podsumowanie ..........................................................................................................................223
7.16. Wska niki SmartPtr — na skróty .............................................................................................224
Plik z chomika:
PDFator
Inne pliki z tego folderu:
C Inzynieria programowania.pdf
(2927 KB)
C Biblioteka IOStreams i lokalizacja programow.pdf
(496 KB)
ABC programowania w C.pdf
(344 KB)
C 17 STL Receptury.pdf
(955 KB)
C 11 Nowy standard cwiczenia.pdf
(532 KB)
Inne foldery tego chomika:
3ds max
Access
Acrobat
After Effects
Agile - Programowanie
Zgłoś jeśli
naruszono regulamin