Wzorce projektowe w .NET. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F# - ebook
Wzorce projektowe w .NET. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F# - ebook
Wzorce projektowe są bardzo przydatnym narzędziem w przyborniku programisty. Pozwalają na szybkie opracowanie złożonych zagadnień, ale można je również potraktować jako wstęp do ciekawego i inspirującego dochodzenia, jak rozwiązać konkretny problem na wiele różnych sposobów, na różnych poziomach zaawansowania technicznego i z zastosowaniem różnego rodzaju kompromisów. Takie próby jednak często prowadzą do nadinżynierii lub powstawania zbyt skomplikowanych struktur i mechanizmów. Chociaż bywa to zabawne i pomaga w doskonaleniu umiejętności programistycznych, nie jest pożądanym sposobem tworzenia systemów produkcyjnych.
To książka przeznaczona dla programistów C#, którzy chcą poszerzyć wiedzę na temat sztuki programowania dzięki wykorzystaniu nowoczesnych technik projektowych do rozwiązywania konkretnych problemów programistycznych w optymalny sposób. Dogłębnie przedstawiono tu implementację klasycznych wzorców wraz ze wskazówkami dotyczącymi ich możliwości. Omówiono znaczenie poszczególnych cech języków C# i F# dla implementacji wzorców. Pokazano cały szereg przykładów i scenariuszy, możliwych implementacji wzorców, ich alternatyw i wzajemnych relacji. Co więcej, zaprezentowano sposób wykorzystania dedykowanego narzędzia ReSharper do łatwej implementacji wzorców projektowych.
W tej książce między innymi:
- zasady projektowania SOLID
- cechy C# i F# związane z paradygmatem funkcyjnym
- kreacyjne wzorce projektowe
- praca w środowisku Visual Studio
Wzorce projektowe w .NET: rekomendacja najlepszych architektów!
Spis treści
O autorze 9
Wprowadzenie 11
CZĘŚĆ I. WPROWADZENIE 13
Rozdział 1. Zasady projektowania SOLID 15
- Zasada pojedynczej odpowiedzialności 15
- Zasada otwarty-zamknięty 17
- Zasada podstawiania Liskov 22
- Zasada segregacji interfejsów 23
- Zasada odwracania zależności 26
Rozdział 2. Perspektywa funkcyjna 29
- Podstawy funkcji 29
- Literały funkcyjne w języku C# 30
- Funkcje przechowywania w C# 31
- Literały funkcyjne w języku F# 33
- Kompozycja 34
- Cechy języka związane z paradygmatem funkcyjnym 35
CZĘŚĆ II. WZORCE KREACYJNE 37
Rozdział 3. Budowniczy 39
- Scenariusz 39
- Prosty budowniczy 40
- Płynny budowniczy 41
- Komunikowanie zamiaru 42
- Złożony budowniczy 43
- Parametry budowniczego 46
- Dziedziczenie płynnego interfejsu 47
- Konstrukcja DSL w F# 50
- Podsumowanie 51
Rozdział 4. Fabryki 53
- Scenariusz 53
- Metoda fabrykująca 54
- Fabryka 55
- Fabryka wewnętrzna 56
- Separacja logiczna 56
- Fabryka abstrakcyjna 57
- Fabryka funkcyjna 58
- Podsumowanie 59
Rozdział 5. Prototyp 61
- Kopiowanie głębokie i płytkie 61
- ICloneable to zły pomysł 62
- Głębokie kopiowanie z wykorzystaniem specjalnego interfejsu 63
- Głębokie kopiowanie obiektów 63
- Duplikacja za pomocą konstruktora kopiującego 64
- Serializacja 65
- Fabryka prototypów 66
- Podsumowanie 67
Rozdział 6. Singleton 69
- Singleton według konwencji 69
- Klasyczna implementacja 70
- Leniwe ładowanie 71
- Kłopoty z singletonami 71
- Singletony a IoC 74
- Monostat 75
- Podsumowanie 76
CZĘŚĆ III. WZORCE STRUKTURALNE 77
Rozdział 7. Adapter 79
- Scenariusz 79
- Adapter 80
- Tymczasowe stany adaptera 81
- Problem z generowaniem skrótów 83
- Adapter właściwości (surogat) 85
- Adaptery w .NET Framework 86
- Podsumowanie 87
Rozdział 8. Most 89
- Konwencjonalny most 89
- Most do dynamicznego prototypowania 92
- Podsumowanie 93
Rozdział 9. Kompozyt 95
- Grupowanie obiektów graficznych 95
- Sieci neuronowe 97
- Opakowanie kompozytu 99
- Podsumowanie 100
Rozdział 10. Dekorator 101
- Niestandardowy StringBuilder 101
- Adapter-dekorator 103
- Wielokrotne dziedziczenie 103
- Dynamiczna kompozycja dekoratora 106
- Dekorator statyczny 108
- Dekorator funkcyjny 109
- Podsumowanie 110
Rozdział 11. Fasada 111
- Budowa terminalu handlowego 112
- Zaawansowany terminal 113
- Gdzie jest fasada? 114
- Podsumowanie 116
Rozdział 12. Pyłek 117
- Nazwy użytkowników 117
- Formatowanie tekstu 119
- Podsumowanie 121
Rozdział 13. Pełnomocnik 123
- Pełnomocnik zabezpieczający 123
- Pełnomocnik właściwości 125
- Pełnomocnik wirtualny 126
- Pełnomocnik komunikacji 128
- Podsumowanie 130
CZĘŚĆ IV. WZORCE ZACHOWAŃ 131
Rozdział 14. Łańcuch odpowiedzialności 133
- Scenariusz 133
- Łańcuch metod 134
- Łańcuch brokerów 136
- Podsumowanie 139
Rozdział 15. Polecenie 141
- Scenariusz 141
- Implementacja wzorca Polecenie 142
- Operacje cofania 143
- Polecenia złożone 145
- Polecenie funkcyjne 147
- Zapytania i rozdzielanie zapytań od poleceń 149
- Podsumowanie 149
Rozdział 16. Interpreter 151
- Ewaluator wyrażeń numerycznych 152
- Leksykalizacja 152
- Parsowanie 154
- Wykorzystanie leksera i parsera 156
- Interpreter w paradygmacie funkcyjnym 156
- Podsumowanie 159
Rozdział 17. Iterator 161
- Właściwości wspierane przez tablice 162
- Stwórzmy iterator 163
- Ulepszony iterator 166
- Podsumowanie 167
Rozdział 18. Mediator 169
- Chat room 169
- Mediator ze zdarzeniami 172
- Podsumowanie 174
Rozdział 19. Memento 175
- Rachunek bankowy 175
- Cofnij i ponów 176
- Podsumowanie 178
Rozdział 20. Pusty obiekt 181
- Scenariusz 181
- Podejście natrętne 182
- Pusty obiekt 182
- Ulepszenia projektu 183
- Wirtualny pośrednik pustego obiektu 183
- Dynamiczny pusty obiekt 184
- Podsumowanie 185
Rozdział 21. Obserwator 187
- Słabe zdarzenie 188
- Obserwatory właściwości 190
- Problemy z zależnościami 191
- Strumienie zdarzeń 194
- Kolekcje obserwowalne 197
- Subskrypcje deklaratywne 197
- Podsumowanie 199
Rozdział 22. Stan 201
- Przejścia między stanami zależne od stanu 202
- Maszyna stanów - "samoróbka" 204
- Maszyny stanów z wykorzystaniem biblioteki Stateless 206
- Typy, akcje i ignorowanie przejść 206
- Ponowne wejście w ten sam stan 207
- Stany hierarchiczne 208
- Dodatkowe własności 208
- Podsumowanie 209
Rozdział 23. Strategia 211
- Strategia dynamiczna 211
- Strategia statyczna 214
- Strategia funkcyjna 214
- Podsumowanie 215
Rozdział 24. Metoda szablonowa 217
- Symulacja gry 217
- Funkcyjna odmiana Metody szablonowej 219
- Podsumowanie 220
Rozdział 25. Wizytator 221
- Nachalny wizytator 222
- Wyświetlacz reflektywny 223
- Funkcyjny wizytator reflektywny 224
- Usprawnienia 224
- Co to jest dysponowanie? 225
- Wizytator dynamiczny 227
- Klasyczny wizytator 228
- Implementacja dodatkowego wizytatora 229
- Wizytator acykliczny 230
- Wizytator funkcyjny 232
- Podsumowanie 232
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-6271-0 |
Rozmiar pliku: | 3,6 MB |