Wzorce projektowe w .NET Core 3. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F# - ebook
Wzorce projektowe w .NET Core 3. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F# - ebook
Rozpoznawanie wzorców i ich trafne stosowanie to umiejętności, które przydają się w różnych sytuacjach. Są bardzo cenne dla architektów: pozwalają na szybkie opracowanie złożonych zagadnień, ale też ułatwiają rozwiązywanie konkretnych problemów na wiele sposobów. Pomagają w podejmowaniu decyzji o konkretnej technologii i niezbędnych kompromisach. Każda kolejna wersja języka programowania czy platformy, na której uruchamia się kod, jest dobrą okazją do przejrzenia istniejących wzorców projektowych, ich zaktualizowania lub opracowania kolejnych.
To nowe, uzupełnione wydanie przewodnika po implementacjach klasycznych i zaawansowanych wzorców projektowych wdrażanych w językach C# i F#. Wzorce zaprezentowano wraz ze scenariuszami, do których mają zastosowanie. Omówiono też alternatywy i relacje zachodzące między wzorcami, pokazano również sposoby użycia narzędzi do refaktoryzacji (ReSharper) w celu ułatwienia implementacji. Nowe wydanie książki zostało uzupełnione o takie wzorce jak funkcyjny budowniczy, asynchroniczna metoda wytwórcza, adapter generycznych wartości i pełnomocnik kompozytu. Poszczególne zagadnienia przedstawiono w formie kompletnych, samodzielnych przykładów, z których wiele zawiera także scenariusze zaawansowane.
W książce między innymi:
- najnowsze implementacje wzorców projektowych w językach C# 8 i F# 5
- zasady tworzenia nowoczesnej architektury oprogramowania
- refaktoryzacja kodu do wzorców projektowych
- sprawdzone odmiany wzorców projektowych
- najnowsze implementacje języka C# oraz środowiska Visual Studio, Rider i ReSharper
Wzorce projektowe w .NET Core 3: tylko dla najlepszych architektów!
Spis treści
- O autorze
- O recenzencie technicznym
- Wprowadzenie
- Dla kogo jest ta książka?
- O przykładach kodu
- Przedmowa do drugiego wydania
- Część I. Wprowadzenie
- Rozdział 1. Zasady projektowania SOLID
- Zasada pojedynczej odpowiedzialności
- Zasada otwarty-zamknięty
- Zasada podstawiania Liskov
- Zasada segregacji interfejsów
- Parametr-obiekt
- Zasada odwracania zależności
- Rozdział 2. Perspektywa funkcyjna
- Podstawy funkcji
- Literały funkcyjne w języku C#
- Funkcje przechowywania w C#
- Literały funkcyjne w języku F#
- Kompozycja
- Cechy języka związane z paradygmatem funkcyjnym
- Część II. Wzorce kreacyjne
- Rozdział 3. Budowniczy
- Scenariusz
- Prosty budowniczy
- Płynny budowniczy
- Komunikowanie zamiaru
- Złożony budowniczy
- Parametry budowniczego
- Rozszerzanie budowniczego z wykorzystaniem rekurencyjnych typów generycznych
- Leniwy, funkcyjny budowniczy
- Konstrukcja DSL w F#
- Podsumowanie
- Rozdział 4. Fabryki
- Scenariusz
- Metoda wytwórcza
- Asynchroniczna metoda wytwórcza
- Fabryka
- Fabryka wewnętrzna
- Separacja logiczna
- Fabryka abstrakcyjna
- Fabryki-delegaty w IoC
- Fabryka funkcyjna
- Podsumowanie
- Rozdział 5. Prototyp
- Kopiowanie głębokie i płytkie
- ICloneable to zły pomysł
- Głębokie kopiowanie z wykorzystaniem specjalnego interfejsu
- Głębokie kopiowanie obiektów
- Duplikacja za pomocą konstruktora kopiującego
- Serializacja
- Fabryka prototypów
- Podsumowanie
- Rozdział 6. Singleton
- Singleton według konwencji
- Klasyczna implementacja
- Leniwe ładowanie i bezpieczeństwo wątków
- Kłopoty z singletonami
- Singletony a IoC
- Monostat
- Multiton
- Leniwe ładowanie i bezpieczeństwo wątków
- Podsumowanie
- Część III. Wzorce strukturalne
- Rozdział 7. Adapter
- Scenariusz
- Adapter
- Tymczasowe stany adaptera
- Problem z generowaniem skrótów
- Adapter właściwości (surogat)
- Adapter generycznych wartości
- Adapter a wstrzykiwanie zależności
- Adaptery w .NET Framework
- Podsumowanie
- Rozdział 8. Most
- Konwencjonalny most
- Most do dynamicznego prototypowania
- Podsumowanie
- Rozdział 9. Kompozyt
- Grupowanie obiektów graficznych
- Sieci neuronowe
- Opakowanie kompozytu
- Specyfikacja kompozytu
- Podsumowanie
- Rozdział 10. Dekorator
- Niestandardowy StringBuilder
- Adapter-dekorator
- Wielokrotne dziedziczenie z wykorzystaniem interfejsów
- Wielokrotne dziedziczenie z domyślnymi składowymi interfejsu
- Dynamiczna kompozycja dekoratora
- Kompozycja dekoratora statycznego
- Dekorator funkcyjny
- Podsumowanie
- Rozdział 11. Fasada
- Kwadraty magiczne
- Budowa terminalu handlowego
- Zaawansowany terminal
- Gdzie jest fasada?
- Podsumowanie
- Rozdział 12. Pyłek
- Nazwy użytkowników
- Formatowanie tekstu
- Podsumowanie
- Rozdział 13. Pełnomocnik
- Pełnomocnik zabezpieczający
- Pełnomocnik właściwości
- Pełnomocnik wartości
- Pełnomocnik kompozytu: SoA/AoS
- Pełnomocnik kompozytu z właściwościami przechowywanymi w tablicy
- Pełnomocnik wirtualny
- Pełnomocnik komunikacji
- Dynamiczny pełnomocnik do logowania
- Podsumowanie
- Część IV. Wzorce zachowań
- Rozdział 14. Łańcuch odpowiedzialności
- Scenariusz
- Łańcuch metod
- Łańcuch brokerów
- Podsumowanie
- Rozdział 15. Polecenie
- Scenariusz
- Implementacja wzorca Polecenie
- Operacje cofania
- Polecenia złożone
- Polecenie funkcyjne
- Zapytania i rozdzielanie zapytań od poleceń
- Podsumowanie
- Scenariusz
- Rozdział 16. Interpreter
- Ewaluator wyrażeń numerycznych
- Leksykalizacja
- Parsowanie
- Wykorzystanie leksera i parsera
- Interpreter w paradygmacie funkcyjnym
- Podsumowanie
- Ewaluator wyrażeń numerycznych
- Rozdział 17. Iterator
- Właściwości wspierane przez tablice
- Stwórzmy iterator
- Ulepszony iterator
- Adapter iteratora
- Podsumowanie
- Rozdział 18. Mediator
- Chat room
- Mediator ze zdarzeniami
- Wprowadzenie do biblioteki MediatR
- Podsumowanie
- Rozdział 19. Memento
- Rachunek bankowy
- Cofnij i ponów
- Wykorzystanie wzorca Memento do interakcji z kodem niezarządzanym
- Podsumowanie
- Rozdział 20. Pusty obiekt
- Scenariusz
- Podejście natrętne
- Wirtualny pełnomocnik pustego obiektu
- Pusty obiekt
- Dynamiczny pusty obiekt
- Podsumowanie
- Rozdział 21. Obserwator
- Słabe zdarzenie
- Strumienie zdarzeń
- Obserwatory właściwości
- Proste powiadomienie o zmianie
- Dwukierunkowe powiązania
- Problemy z zależnościami
- Widoki
- Kolekcje obserwowalne
- Obserwowalne zapytania LINQ
- Subskrypcje deklaratywne w Autofac
- Podsumowanie
- Rozdział 22. Stan
- Przejścia między stanami zależne od stanu
- Maszyna stanów samoróbka
- Maszyna stanów na bazie instrukcji switch
- Kodowanie tranzycji za pomocą wyrażeń instrukcji switch
- Maszyny stanów z wykorzystaniem biblioteki Stateless
- Typy, akcje i ignorowanie przejść
- Ponowne wejście w ten sam stan
- Stany hierarchiczne
- Dodatkowe własności
- Podsumowanie
- Rozdział 23. Strategia
- Strategia dynamiczna
- Strategia statyczna
- Strategie równości i porównywania
- Strategia funkcyjna
- Podsumowanie
- Rozdział 24. Metoda szablonowa
- Symulacja gry
- Funkcyjna odmiana Metody szablonowej
- Podsumowanie
- Rozdział 25. Wizytator
- Nachalny wizytator
- Wyświetlacz reflektywny
- Metody rozszerzeń?
- Funkcyjny wizytator reflektywny
- Usprawnienia
- Co to jest dysponowanie?
- Wizytator dynamiczny
- Klasyczny wizytator
- Implementacja dodatkowego wizytatora
- Wizytator acykliczny
- Wizytator funkcyjny
- Podsumowanie
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-8138-4 |
Rozmiar pliku: | 4,1 MB |