Szkolenie Wzorce projektowe w C#

Poziom

Średniozaawansowany

Czas

16h / 2 dni

Termin

Indywidualnie

Cena

Indywidualnie

Szkolenie 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

Skontaktuj sie z nami

zorganizujemy dla Ciebie szkolenie dopasowane do Twoich potrzeb

Przemysław Wołosz

Key Account Manager

przemyslaw.wolosz@infoShareAcademy.com

    Administratorem danych osobowych jest InfoShare Academy Sp. z o.o. z siedzibą w Gdańsku, al. Grunwaldzka 427B, 80-309 Gdańsk, KRS: 0000531749, NIP: 5842742213. Dane osobowe przetwarzane są zgodnie z klauzulą informacyjną.