Wzorce projektowe w .NET Core 3. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F# - Helion
Tytuł oryginału: Design Patterns in .NET Core 3: Reusable Approaches in C# and F# for Object-Oriented Software Design
Tłumaczenie: Radosław Meryk
ISBN: 978-83-283-8138-4
stron: 280, Format: ebook
Data wydania: 2021-09-01
Księgarnia: Helion
Cena książki: 44,85 zł (poprzednio: 69,00 zł)
Oszczędzasz: 35% (-24,15 zł)
Nakład wyczerpany
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!
Zobacz także:
- Gray Hat C#. Język C# w kontroli i łamaniu zabezpieczeń 57,74 zł, (17,90 zł -69%)
- ASP.NET Core 6. Kurs video. Rozwijaj aplikacje webowe z Entity Framework Core 179,00 zł, (71,60 zł -60%)
- Testowanie automatyczne w .NET. Kurs video. Zastosowania frameworka nUnit 169,00 zł, (76,05 zł -55%)
- Programowanie asynchroniczne i równoległe w C#. Kurs video. Poziom podstawowy 69,00 zł, (31,05 zł -55%)
- Technologia LINQ. Kurs video. Warsztat pracy z danymi z różnych źródeł 59,00 zł, (26,55 zł -55%)
Spis treści
Wzorce projektowe w .NET Core 3. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F# eBook -- 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