Szkolenie Wzorce projektowe w C#
Poziom
ŚredniozaawansowanyCzas
16h / 2 dniTermin
IndywidualnieCena
IndywidualnieSzkolenie wzorce projektowe w C#
Poniżej przedstawiamy przykładowy program szkolenia, który może zostać zmodyfikowany zgodnie z oczekiwaniami oraz poziomem grupy szkoleniowej. Przed przygotowaniem docelowego programu szkolenia, przeprowadzamy rozmowę techniczną, w której bierze udział trener oraz osoba techniczna lub cały zespół developerów reprezentujący klienta, w celu ustalenia szczegółów szkolenia.rnrn
Dla kogo jest to szkolenie?
- Dla programistów C# i .NET, którzy swobodnie posługują się klasami, interfejsami, dziedziczeniem, kompozycją, generykami oraz mechanizmem wstrzykiwania zależności
- Dla osób znających podstawy programowania obiektowego, które chcą świadomie dobierać wzorce projektowe do konkretnych problemów zamiast stosować je schematycznie
- Dla programistów rozwijających istniejące aplikacje, odpowiedzialnych za refaktoryzację kodu, ograniczanie zależności oraz zwiększanie rozszerzalności i czytelności rozwiązań
- Dla zespołów .NET, które chcą ujednolicić sposób projektowania obiektów, komunikacji między komponentami i organizacji odpowiedzialności w kodzie
Czego nauczysz się na szkoleniu?
- Rozpoznasz problemy projektowe, dla których uzasadnione jest zastosowanie wzorców kreacyjnych, strukturalnych lub behawioralnych
- Dobierzesz wzorzec do wymagań rozwiązania oraz ocenisz jego wpływ na sprzężenie, spójność, rozszerzalność i złożoność kodu
- Zaimplementujesz w C# wybrane warianty wzorców Singleton, Factory, Prototype, Builder, Adapter, Decorator, Proxy, Composite, Bridge i Flyweight
- Zastosujesz wzorce Template Method, Strategy, Command, State, Memento, Mediator, Observer, Visitor, Chain of Responsibility, Iterator, Interpreter i Null Object
- Porównasz alternatywne implementacje wzorców, w tym płytką i głęboką kopię, adapter oraz proxy obiektowe i klasowe, a także klasyczny State i State Machine
- Zidentyfikujesz przypadki nadmiernego lub nieuzasadnionego użycia wzorców oraz zaproponujesz prostsze rozwiązanie odpowiednie do skali problemu
Program szkolenia
Dzień 1
Moduł 1: Wzorce kreacyjne
- Singleton – pojedyncza instancja obiektu, globalny punkt dostępu, kontrola cyklu życia, bezpieczeństwo wielowątkowe i ograniczenia testowalności
- Wariant podstawowy – prywatny konstruktor, statyczna instancja i kontrolowany dostęp do obiektu
- Wariant generyczny – współdzielony mechanizm tworzenia pojedynczych instancji dla różnych typów
- Wariant leniwy – opóźniona inicjalizacja, klasa Lazy<T> i bezpieczne tworzenie instancji w środowisku wielowątkowym
- Metoda wytwórcza – delegowanie decyzji o typie tworzonego obiektu, rozszerzalność procesu konstrukcji i ograniczenie zależności od klas konkretnych
- Fabryka – centralizacja logiki tworzenia obiektów, dobór implementacji na podstawie parametrów i separacja konstrukcji od użycia
- Fabryka wewnętrzna – logika tworzenia obiektów umieszczona wewnątrz klasy lub hierarchii domenowej
- Fabryka zewnętrzna – osobny komponent odpowiedzialny za wybór typu, konfigurację i utworzenie obiektu
- Fabryka abstrakcyjna – rodziny powiązanych obiektów, spójność wariantów implementacyjnych i niezależność od klas konkretnych
- Fabryka z wykorzystaniem kontenera IoC – rejestracja typów, rozwiązywanie zależności, zakresy życia i dynamiczny dobór implementacji
- Prototyp – tworzenie obiektów na podstawie istniejącego egzemplarza, kopiowanie stanu i ograniczenie kosztu inicjalizacji
- Kopia płytka – duplikacja obiektu z zachowaniem współdzielonych referencji do złożonych pól
- Kopia głęboka – pełna kopia grafu obiektów, niezależność stanu i kontrola kosztu kopiowania
- Budowniczy – etapowa konstrukcja złożonych obiektów, separacja procesu tworzenia od reprezentacji i kontrola poprawności konfiguracji
- Wariant standardowy – osobny obiekt budowniczego, kolejne etapy konfiguracji i finalizacja kompletnego produktu
- Interfejs płynny – łańcuchowe wywołania metod, czytelna konfiguracja i deklaratywny zapis procesu konstrukcji
- Wariant leniwy – odroczone obliczenia, przechowywanie reguł konfiguracji i materializacja obiektu dopiero w momencie użycia
Moduł 2: Wzorce strukturalne
- Fasada – uproszczony interfejs do złożonego podsystemu, ukrycie szczegółów implementacyjnych i ograniczenie liczby zależności klienta
- Adapter – zgodność niekompatybilnych interfejsów, translacja wywołań i integracja istniejących komponentów bez modyfikacji ich kodu
- Wariant obiektowy – kompozycja, delegowanie operacji i opakowanie istniejącej instancji
- Wariant klasowy – dziedziczenie, implementacja docelowego interfejsu i bezpośrednie wykorzystanie zachowania klasy adaptowanej
- Dekorator – dynamiczne rozszerzanie zachowania obiektu, kompozycja odpowiedzialności i alternatywa dla rozbudowanych hierarchii dziedziczenia
- Proxy – obiekt pośredniczący, kontrola dostępu, opóźniona inicjalizacja, buforowanie, rejestrowanie operacji i komunikacja z zasobem zdalnym
- Wariant obiektowy – kompozycja z obiektem właściwym, delegowanie wywołań i dodatkowa logika przed lub po operacji
- Wariant klasowy – dziedziczenie po typie bazowym, nadpisanie zachowania i kontrola dostępu do implementacji właściwej
- Kompozyt – jednolite traktowanie obiektów prostych i struktur złożonych, hierarchie drzewiaste i rekurencyjne wykonywanie operacji
- Most – rozdzielenie abstrakcji od implementacji, niezależny rozwój dwóch hierarchii i ograniczenie liczby kombinacji klas
- Pyłek – współdzielenie niezmiennego stanu między wieloma obiektami, redukcja zużycia pamięci i separacja stanu wewnętrznego od zewnętrznego
Dzień 2
Moduł 3: Wzorce behawioralne – organizacja algorytmów i poleceń
- Szablon metody – szkielet algorytmu w klasie bazowej, kontrolowane punkty rozszerzeń i współdzielenie wspólnych etapów procesu
- Strategia – wymienne algorytmy za wspólnym interfejsem, dobór zachowania w czasie działania i eliminacja rozbudowanych instrukcji warunkowych
- Komenda – żądanie jako osobny obiekt, oddzielenie nadawcy od wykonawcy, kolejkowanie, rejestrowanie i cofanie operacji
- Stan – zmiana zachowania obiektu zależna od jego aktualnego stanu, jawne reguły przejść i eliminacja warunków sterujących
- Wariant klasyczny – osobne klasy stanów, delegowanie zachowania i kontrolowane przejścia między obiektami reprezentującymi stan
- Maszyna stanów – model stanów i przejść, zdarzenia wyzwalające, warunki przejścia i akcje powiązane ze zmianą stanu
- Memento – zapis i odtwarzanie wewnętrznego stanu obiektu, hermetyzacja danych historycznych i mechanizmy cofania zmian
- Mediator – centralizacja komunikacji między komponentami, ograniczenie bezpośrednich zależności i koordynacja złożonych interakcji
Moduł 4: Wzorce behawioralne – komunikacja i przetwarzanie
- Obserwator – subskrypcja zmian stanu, powiadamianie wielu odbiorców, luźne powiązanie nadawcy z obserwatorami i kontrola cyklu subskrypcji
- Wizytator – oddzielenie operacji od struktury obiektów, centralizacja logiki przetwarzania i rozszerzanie zestawu operacji bez modyfikacji klas elementów
- Łańcuch odpowiedzialności – sekwencja niezależnych obsługujących, przekazywanie żądania między elementami i dynamiczna konfiguracja kolejności przetwarzania
- Iterator – ujednolicony dostęp do elementów kolekcji, ukrycie jej struktury wewnętrznej i niezależne strategie przechodzenia po danych
- Interpreter – reprezentacja gramatyki jako struktury klas, analiza prostych języków i wykonywanie wyrażeń na podstawie zdefiniowanych reguł
- Obiekt pusty – neutralna implementacja interfejsu, eliminacja kontroli wartości null i bezpieczne zachowanie domyślne bez specjalnych warunków