Skip to content

Design Patterns

Bewaehrte Entwurfsmuster fuer wiederkehrende Softwaredesign-Probleme — mit praktischen Beispielen in Python, Go und TypeScript.


Ueberblick

Creational Patterns

Pattern Zweck Anwendungsfall
Factory Objekterstellung abstrahieren Verschiedene Reporttypen erzeugen
Builder Komplexe Objekte schrittweise aufbauen Query Builder, Config Builder
Singleton Genau eine Instanz sicherstellen Logger, Config (sparsam verwenden!)

Structural Patterns

Pattern Zweck Anwendungsfall
Repository Datenzugriff abstrahieren DB-Zugriff von Business-Logik trennen
Adapter Inkompatible Interfaces verbinden Legacy-System integrieren
Decorator Verhalten dynamisch erweitern Logging, Caching, Retry

Behavioral Patterns

Pattern Zweck Anwendungsfall
Strategy Algorithmus austauschbar machen Zahlungsanbieter, Sortierung
Observer Event-basierte Entkopplung Benachrichtigungen nach User-Registrierung
Template Method Algorithmus-Skelett definieren ETL-Prozess mit variablen Schritten
Chain of Responsibility Request durch Handler-Kette leiten Middleware, Validation Pipeline

Wann welches Pattern?

graph TD
    A[Problem?] --> B{Objekterstellung?}
    B -->|Varianten| C[Factory]
    B -->|Komplex| D[Builder]
    A --> E{Verhalten austauschen?}
    E -->|Algorithmus| F[Strategy]
    E -->|Events| G[Observer]
    A --> H{Struktur anpassen?}
    H -->|Datenzugriff| I[Repository]
    H -->|Verhalten erweitern| J[Decorator]

Verwandte Skills


Quelldatei: skills/software-engineering/design-patterns.md