Edocti
Fortgeschrittene technische Ausbildung für den modernen Softwareingenieur
Edocti Training

Design Patterns in modernem C++ (GoF)

Mittelstufe
21 h
4.7 (91 Bewertungen)

Geplante Sessions

Aktuell sind keine Termine verfügbar.
Design Patterns in modernem C++ (GoF)

Design Patterns in modernem C++: Wenden Sie die klassischen Gang-of-Four (GoF) Patterns und moderne Idiome an, um extrem robustes C++‑Design zu entwickeln.

Sammeln Sie direkte Hands-on-Erfahrung bei der Implementierung von Erzeugungs‑, Struktur‑ und Verhaltensmustern in realistischen Szenarien.

Lernen Sie, wie Sie Features aus C++11 bis C++26 effektiv nutzen, um klassische Implementierungen zu vereinfachen, zu optimieren und zu modernisieren.

Praktische Erfahrung sammeln: Durch intensive Labs (~70 % des Kurses), die sich auf Refactoring, Clean Code und die Erstellung hochgradig erweiterbarer Systeme fokussieren.

Nutzen: Verbessern Sie die Wartbarkeit, Lesbarkeit, Testbarkeit und langfristige Skalierbarkeit Ihrer C++‑Anwendungen maßgeblich.

Für wen: Konzipiert für C++‑Entwickler, die ihr Software-Design-Wissen auf das nächste Level heben wollen.

Der Kurs bietet zudem optionale Module zu modernen Alternativen, Concurrency und der Vermeidung gängiger Anti‑Patterns.

Fähigkeiten, die Sie lernen werden

GoF Design Patterns Creational Patterns Structural Patterns Behavioral Patterns Code Refactoring Modernes C++ (11-26) Memory & Smart Pointers UML Modellierung

Curriculum

Tag 1 — Grundlagen & Creational Patterns

  • OOP-Recap, SOLID und wann Patterns helfen vs. schaden
  • Modern C++ Toolbox: RAII and smart pointers (unique_ptr, shared_ptr, weak_ptr); Move semantics and perfect forwarding; Type erasure and pimpl; Templates: partial specialization, SFINAE, Concepts, policy-based design; constexpr, consteval and compile-time computation; Ranges and views (C++20); std::variant/visit, std::optional, std::any; Coroutines (high-level overview)
  • UML-Essentials für Patterns (class, object, relationships)
  • Factory Method — virtuelle Konstruktoren, Registries, unique_ptr-Returns
  • Abstract Factory — Produktfamilien, Objektgraphen, Dependency Injection
  • Builder — fluente APIs, Immutability, Invarianten aufbauen
  • Prototype — klonen polymorpher Objekte; Copy/Move Semantics; deep vs. shallow copy
  • Singleton — Testbarkeit, Threading, Alternativen (Object Lifetime, DI-Container)

Tag 2 — Structural Patterns

  • Adapter — Object vs. Class Adapter; Ranges-stil Adapter; Type Erasure
  • Facade — stabile API über Subsysteme; PIMPL zur Reduktion von Rebuilds
  • Proxy — Remote/Virtual/Protection; Lazy Loading; Caching
  • Decorator — Composition over Inheritance; Value- vs. Referenzsemantik
  • Composite — Bäume; Iteratoren und Visitoren; Value Categories
  • Flyweight — Intern-Pools; String Views; Arena Allocators
  • Bridge — orthogonale Dimensionen; ABI-Stabilität; Policy-based Design

Tag 3 — Behavioral Patterns & Refactoring

  • Strategy — statisch (Templates/Policies) vs. dynamisch (Type Erasure/Variant)
  • Observer — Thread-Safety, lockfreie Queues; Signals/Slots vs. Callbacks
  • Command — Undo/Redo, Makro-Commands; Function Objects und Lambdas
  • State — Table-driven vs. State Pattern; Variant + visit; Übergangssicherheit
  • Template Method — CRTP-Alternativen; Non-virtual Interface (NVI)
  • Iterator — Custom Iteratoren, Ranges; Coroutines als Generatoren (Überblick)
  • Mediator — Entkopplung komplexer Interaktionen; Event Bus
  • Memento — Snapshot-Strategien; Serialisierungsoptionen
  • Chain of Responsibility — Pipelines; Fehlerbehandlung mit expected/variant
  • Interpreter — Embedded DSLs; Parser-Optionen
  • Visitor — Acyclic Visitor; std::variant visitation & Pattern Matching
  • Anti-Patterns & Smells — Shotgun Surgery, Train Wreck, God Object
  • Refactoring-Lab — von Ad-hoc-Code zu klaren Patterns; Wirkung messen

Optionale Module

Optional — Concurrency & Async

  • Active Object und Reactor (konzeptionell) mit std::jthread und Executors
  • Coroutines für asynchrone Flüsse; Cancellation und Timeouts (High Level)

Kursablauf

  • Part 1: 09:00–10:30
  • Break: 10:30–10:45
  • Part 2: 10:45–12:15
  • Lunch break: 12:15–13:15
  • Part 3: 13:15–15:15
  • Break: 15:15–15:30
  • Part 4: 15:30–17:30

Haben Sie an diesem Kurs teilgenommen?

Ihre Meinung ist uns sehr wichtig. Teilen Sie Ihre Erfahrungen mit uns und helfen Sie uns, diesen Kurs für zukünftige Teilnehmer weiter zu verbessern.

Feedback teilen

Möchten Sie mehr erfahren? Wir helfen Ihnen gern!

Oder schreiben Sie uns direkt an training@edocti.com.