Wzorce projektowe w .NET

33,55

Opis

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 SOLIDcechy C# i F# związane z paradygmatem funkcyjnymkreacyjne wzorce projektowepraca w środowisku Visual StudioWzorce projektowe w .NET: rekomendacja najlepszych architektów!Spis treści:O autorze 9Wprowadzenie 11CZĘŚĆ I. WPROWADZENIE 13Rozdział 1. Zasady projektowania SOLID 15Zasada pojedynczej odpowiedzialności 15Zasada otwarty-zamknięty 17Zasada podstawiania Liskov 22Zasada segregacji interfejsów 23Zasada odwracania zależności 26Rozdział 2. Perspektywa funkcyjna 29Podstawy funkcji 29Literały funkcyjne w języku C# 30Funkcje przechowywania w C# 31Literały funkcyjne w języku F# 33Kompozycja 34Cechy języka związane z paradygmatem funkcyjnym 35CZĘŚĆ II. WZORCE KREACYJNE 37Rozdział 3. Budowniczy 39Scenariusz 39Prosty budowniczy 40Płynny budowniczy 41Komunikowanie zamiaru 42Złożony budowniczy 43Parametry budowniczego 46Dziedziczenie płynnego interfejsu 47Konstrukcja DSL w F# 50Podsumowanie 51Rozdział 4. Fabryki 53Scenariusz 53Metoda fabrykująca 54Fabryka 55Fabryka wewnętrzna 56Separacja logiczna 56Fabryka abstrakcyjna 57Fabryka funkcyjna 58Podsumowanie 59Rozdział 5. Prototyp 61Kopiowanie głębokie i płytkie 61ICloneable to zły pomysł 62Głębokie kopiowanie z wykorzystaniem specjalnego interfejsu 63Głębokie kopiowanie obiektów 63Duplikacja za pomocą konstruktora kopiującego 64Serializacja 65Fabryka prototypów 66Podsumowanie 67Rozdział 6. Singleton 69Singleton według konwencji 69Klasyczna implementacja 70Leniwe ładowanie 71Kłopoty z singletonami 71Singletony a IoC 74Monostat 75Podsumowanie 76CZĘŚĆ III. WZORCE STRUKTURALNE 77Rozdział 7. Adapter 79Scenariusz 79Adapter 80Tymczasowe stany adaptera 81Problem z generowaniem skrótów 83Adapter właściwości (surogat) 85Adaptery w .NET Framework 86Podsumowanie 87Rozdział 8. Most 89Konwencjonalny most 89Most do dynamicznego prototypowania 92Podsumowanie 93Rozdział 9. Kompozyt 95Grupowanie obiektów graficznych 95Sieci neuronowe 97Opakowanie kompozytu 99Podsumowanie 100Rozdział 10. Dekorator 101Niestandardowy StringBuilder 101Adapter-dekorator 103Wielokrotne dziedziczenie 103Dynamiczna kompozycja dekoratora 106Dekorator statyczny 108Dekorator funkcyjny 109Podsumowanie 110Rozdział 11. Fasada 111Budowa terminalu handlowego 112Zaawansowany terminal 113Gdzie jest fasada? 114Podsumowanie 116Rozdział 12. Pyłek 117Nazwy użytkowników 117Formatowanie tekstu 119Podsumowanie 121Rozdział 13. Pełnomocnik 123Pełnomocnik zabezpieczający 123Pełnomocnik właściwości 125Pełnomocnik wirtualny 126Pełnomocnik komunikacji 128Podsumowanie 130CZĘŚĆ IV. WZORCE ZACHOWAŃ 131Rozdział 14. Łańcuch odpowiedzialności 133Scenariusz 133Łańcuch metod 134Łańcuch brokerów 136Podsumowanie 139Rozdział 15. Polecenie 141Scenariusz 141Implementacja wzorca Polecenie 142Operacje cofania 143Polecenia złożone 145Polecenie funkcyjne 147Zapytania i rozdzielanie zapytań od poleceń 149Podsumowanie 149Rozdział 16. Interpreter 151Ewaluator wyrażeń numerycznych 152Leksykalizacja 152Parsowanie 154Wykorzystanie leksera i parsera 156Interpreter w paradygmacie funkcyjnym 156Podsumowanie 159Rozdział 17. Iterator 161Właściwości wspierane przez tablice 162Stwórzmy iterator 163Ulepszony iterator 166Podsumowanie 167Rozdział 18. Mediator 169Chat room 169Mediator ze zdarzeniami 172Podsumowanie 174Rozdział 19. Memento 175Rachunek bankowy 175Cofnij i ponów 176Podsumowanie 178Rozdział 20. Pusty obiekt 181Scenariusz 181Podejście natrętne 182Pusty obiekt 182Ulepszenia projektu 183Wirtualny pośrednik pustego obiektu 183Dynamiczny pusty obiekt 184Podsumowanie 185Rozdział 21. Obserwator 187Słabe zdarzenie 188Obserwatory właściwości 190Problemy z zależnościami 191Strumienie zdarzeń 194Kolekcje obserwowalne 197Subskrypcje deklaratywne 197Podsumowanie 199Rozdział 22. Stan 201Przejścia między stanami zależne od stanu 202Maszyna stanów – „samoróbka” 204Maszyny stanów z wykorzystaniem biblioteki Stateless 206Typy, akcje i ignorowanie przejść 206Ponowne wejście w ten sam stan 207Stany hierarchiczne 208Dodatkowe własności 208Podsumowanie 209Rozdział 23. Strategia 211Strategia dynamiczna 211Strategia statyczna 214Strategia funkcyjna 214Podsumowanie 215Rozdział 24. Metoda szablonowa 217Symulacja gry 217Funkcyjna odmiana Metody szablonowej 219Podsumowanie 220Rozdział 25. Wizytator 221Nachalny wizytator 222Wyświetlacz reflektywny 223Funkcyjny wizytator reflektywny 224Usprawnienia 224Co to jest dysponowanie? 225Wizytator dynamiczny 227Klasyczny wizytator 228Implementacja dodatkowego wizytatora 229Wizytator acykliczny 230Wizytator funkcyjny 232Podsumowanie 232O autorze: Dmitri Nesteruk jest analitykiem giełdowym i programistą. Występuje na konferencjach, tworzy kursy i pisze książki techniczne. Zawodowo interesuje się integracją rozwiązań w dziedzinie obliczeń, finansów i handlu algorytmicznego. Z upodobaniem programuje w C# i C++ i implementuje wysokowydajne przetwarzanie danych za pomocą takich technologii jak CUDA oraz FPGA. W 2009 roku za osiągnięcia w dziedzinie C# otrzymał tytuł MVP.

Podręczniki szkolne

łubniany, awwapp tablica, hiszpański przekleństwa, poetycka dolina, banino szkola, czy język turecki jest trudny, praktyki logistyka warszawa, jak napisac analize wiersza, antygona charakterystyka, miasteczko śląskie, tarnowiak meble za darmo, stopień niemiecki, kodeks cywilny wypowiedzenie umowy o świadczenie usług wzór, czym się różni żaba od ropuchy

yyyyy