Design Patterns – sinnvoll einsetzen
Bewährte Entwurfsmuster verstehen, auswählen und ohne Pattern-Zoo einsetzen
01 Intro
Design Patterns beschreiben wiederkehrende Lösungsansätze für typische
Entwurfsprobleme. Ihr Wert liegt nicht darin, möglichst viele Muster in
einem System unterzubringen, sondern Entwurfsprobleme zu erkennen und
geeignete Lösungsprinzipien bewusst anzuwenden.
Der Kurs verbindet klassische Design Patterns mit modernen
Software-Engineering-Praktiken. Die Teilnehmer implementieren ausgewählte
Muster, vergleichen Alternativen und untersuchen auch Situationen, in denen
ein Pattern unnötige Komplexität erzeugt.
Kurs-ID
SWE-003
Dauer
3 Tage
Format
Präsenz · Live Online · Inhouse
Vorkenntnisse
Sichere Kenntnisse objektorientierter Programmierung
02 Trainingsprogramm
Inhalte
Warum Design Patterns?
- wiederkehrende Entwurfsprobleme
- gemeinsame Sprache
- Kontext
- Problem
- Lösung
- Patterns versus Rezepte
Entwurfsprinzipien als Grundlage
- Encapsulation
- Composition
- Polymorphism
- Dependency Inversion
- Open/Closed Principle
- Veränderlichkeit isolieren
Strategy
- austauschbares Verhalten
- Polymorphie
- Funktionen als Alternative
- Konfiguration
- Testbarkeit
- typische Einsatzfälle
Factory und Factory Method
- Objekterzeugung
- Entkopplung
- Konfiguration
- Produktvarianten
- Dependency Injection
- Alternativen
Builder
- komplexe Objekte
- optionale Parameter
- Fluent Interfaces
- Validierung
- Test Data Builder
- Spracheigenschaften als Alternative
Adapter und Facade
- inkompatible Schnittstellen
- externe Systeme
- Legacy APIs
- Vereinfachung
- Anti-Corruption Layer
- Abgrenzung der Muster
Decorator und Proxy
- Verhalten ergänzen
- Delegation
- Zugriffskontrolle
- Lazy Loading
- Logging
- technische Querschnittsfunktionen
Observer
- Ereignisse
- Publisher und Subscriber
- lose Kopplung
- Event-Systeme
- Lebenszyklus
- unerwartete Seiteneffekte
Command
- Aktionen als Objekte
- Queue
- Undo
- Logging
- Workflows
- asynchrone Verarbeitung
State und Template Method
- zustandsabhängiges Verhalten
- Zustandsautomaten
- Algorithmusstruktur
- Vererbung
- Komposition
- Alternativen
Patterns kritisch bewerten
- Patternitis
- Overengineering
- sprachspezifische Alternativen
- Framework-Funktionalität
- unnötige Abstraktion
- YAGNI
Pattern-Workshop
- Entwurfsproblem analysieren
- Lösungsvarianten entwickeln
- Pattern auswählen
- implementieren
- Alternative vergleichen
- Entwurf begründen
03 Durchführung
Rahmen und Organisation
Dauer
3 Tage
Durchführung
Präsenz oder Live Online, vorzugsweise als Inhouse-Schulung
Schwerpunkt
Inhouse-Schulungen für Unternehmen und Teams
Sprache
Deutsch, englische Fachbegriffe und Dokumentation
Unterlagen
Kursunterlagen, Beispiele und Übungsaufgaben
Technik
Eigener Rechner mit Entwicklungsumgebung für die praktischen Übungen
Inhouse-Schulungen
Die Übungen können in der Sprache durchgeführt werden, die im Team
eingesetzt wird, etwa Java, Python oder C#.
04 Zielgruppe
Für wen ist der Kurs gedacht?
Softwareentwickler und Softwarearchitekten, die Design Patterns nicht nur
kennen, sondern situationsgerecht einsetzen möchten.
Voraussetzungen
Sichere Kenntnisse objektorientierter Programmierung.
05 Lernziele
Was Sie nach dem Kurs können
Die Teilnehmer können typische Entwurfsprobleme erkennen, geeignete
Patterns auswählen, ihre Konsequenzen beurteilen und unnötige
Pattern-Komplexität vermeiden.
06 FAQ
Häufige Fragen
Werden alle Gang-of-Four-Patterns behandelt?
Nein. Der Kurs konzentriert sich auf besonders relevante Muster und vor allem auf das Verständnis ihrer zugrunde liegenden Entwurfsprobleme.
Ist der Kurs sprachabhängig?
Die Konzepte sind weitgehend sprachunabhängig. Übungen können beispielsweise mit Java, Python oder C# durchgeführt werden.
Wann sollte ich kein Pattern verwenden?
Wenn eine einfachere Lösung das Problem ebenso gut löst. Genau diese Entscheidung ist Bestandteil des Kurses.