Wzorce projektowe w języku C++

Cele szkolenia

Uczestnicy szkolenia nauczą się jak:

  • poprawić jakość tworzonego kodu obiektowego
  • stosować w praktyce zasady Clean Code i SOLID OOP
  • rozpoznać kontekst, w którym można zastosować odpowiedni wzorzec projektowy
  • skutecznie zaimplementować odpowiedni wzorzec
  • refaktoryzować kod legacy do odpowiednich wzorców (Refaktoring do Patterns)

Plan szkolenia

S.O.L.I.D. OOP

  • Rodzaje polimorfizmu w nowoczesnym C++
    • polimorfizm dynamiczny - metody wirtualne i dziedziczenie
    • polimorfizm statyczny - szablony
    • wykorzystanie std::variant<Ts...>
    • "duck typing" - wrappery polimorficzne wykorzystujące technikę "type erasure"
  • Dependency Injection
    • technika wstrzykiwania zależności
    • Biblioteki DI w C++
  • Zasady dobrego programowania obiektowego - SOLID OOP
    • SRP - Single Responsibility Principle
    • OCP - Open/Close Principle
    • LSP - Liskov Substitution Principle
    • ISP - Interface Segregation Principle
    • DSP - Dependancy Inversion Principle

Wprowadzenie do wzorców projektowych

  • Definicja wzorca projektowego
  • Atrybuty wzorca

Konstrukcyjne wzorce projektowe

  • Fabryki
    • Factory Method
    • Abstract Factory
  • Builder
  • Prototype
  • Singleton

Strukturalne wzorce projektowe

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Flyweight
  • Façade
  • Proxy

Behawioralne wzorce projektowe

  • Template Method
  • Strategy
  • State
  • Wzorce obsługi zdarzeń
    • Chain of Responsibility
    • Observer
  • Command
  • Memento
  • Iterator
  • Mediator
  • Visitor

Wymagania

Opanowane podstawy programowania w języku C++

Czas trwania

3 dni po 8 godzin lekcyjnych
Wycena szkolenia zamkniętego

Szkolenie zamknięte w siedzibie Klienta.

Klient zapewnia salę szkoleniową i sprzęt.

Zapytaj o termin i cenę
Wycena szkolenia zdalnego

Szkolenie live online. Warsztaty z trenerem.

Zapytaj o termin i cenę
Terminy szkoleń otwartych
Zdalne
15-17.2.2023
2990 PLN Zgłoś udział

Pasuje Ci inny termin?

Wyślij zapytanie