Design Patterns mit Python- Ein praxisorientierter Leitfaden
Design Patterns mit Python: Ein praxisorientierter Leitfaden
Wiederverwendbare Lösungen für typische Softwareprobleme in Python – objektorientiert, flexibel und verständlich
Inhaltsverzeichnis
Kapitel 1: Was sind Design Patterns – und warum sind sie wichtig?
- Ursprung und Klassifikation von Entwurfsmustern
- Ziele: Wiederverwendbarkeit, Klarheit, Erweiterbarkeit
- Die drei Musterkategorien: Erzeugungs-, Struktur- und Verhaltensmuster
- Designprinzipien nach SOLID und GRASP
Kapitel 2: Einrichtung und Grundlagen in Python
- Objektorientierte Grundlagen wiederholen
- Sprachmerkmale von Python: Dynamik, Duck Typing, First-Class Functions
- Empfehlungen für pythonische Pattern-Implementierung
- Mini-Projekt: Muster-Vorlage für alle Beispiele im Buch
Kapitel 3: Erzeugungsmuster (Creational Patterns)
- Singleton: Eine Klasse – genau ein Objekt
- Factory Method: Erstellung von Objekten durch eine Schnittstelle
- Abstract Factory: Familien von Objekten erzeugen
- Builder: Schrittweise Erstellung komplexer Objekte
- Prototype: Objekte durch Klonen duplizieren
- Mini-Projekt: Konfigurierbares UI-Komponenten-System
Kapitel 4: Strukturmuster (Structural Patterns)
- Adapter: Schnittstellen kompatibel machen
- Decorator: Verhalten zur Laufzeit hinzufügen
- Facade: Eine einheitliche Schnittstelle nach außen
- Composite: Objektbäume mit einheitlicher Behandlung
- Bridge: Abstraktion und Implementierung trennen
- Proxy: Stellvertreter für kontrollierten Zugriff
- Mini-Projekt: Plugin-Manager mit Adapter und Proxy
Kapitel 5: Verhaltensmuster (Behavioral Patterns)
- Observer: Änderungen an einem Objekt abonnieren
- Strategy: Austauschbare Algorithmen zur Laufzeit
- Command: Befehle kapseln und rückgängig machen
- State: Objektverhalten abhängig vom Zustand
- Template Method: Gerüstmethoden mit überschr. Schritten
- Chain of Responsibility: Anfragekette mit Verarbeitung
- Mediator, Iterator, Visitor (kurz vorgestellt)
- Mini-Projekt: Texteditor mit Undo-Funktion (Command)
Kapitel 6: Designmuster in realen Python-Projekten
- Wo werden Design Patterns in Web-, GUI- und Datenprojekten verwendet?
- Kombinierte Muster in Frameworks (z. B. Django, Flask, PyQt)
- Mini-Analyse: Flask-Routing mit Strategy und Decorator
Kapitel 7: Best Practices im Umgang mit Patterns
- Muster richtig erkennen und nicht überstrapazieren
- Refactoring mit Hilfe von Design Patterns
- Testbarkeit und Modularität durch Muster
- Mini-Projekt: Refactoring eines Legacy-Moduls mit Strategy
Kapitel 8: Moderne und funktionale Muster in Python
- Dependency Injection (DI) auf Python-Art
- Monostate, Null Object, Lazy Initialization
- Funktionale Alternativen zu OO-Mustern
- Mini-Projekt: Datentransformation mit Pipelines (Chain of Responsibility)
Kapitel 9: Kombination und Variation von Mustern
- Mehrere Muster gleichzeitig einsetzen
- Anti-Patterns und häufige Fehler
- Erweiterbare Architekturen durch kluge Kombination
- Mini-Projekt: Mini-Webframework mit Template + Factory + Observer
Kapitel 10: Eigene Patterns entwickeln und dokumentieren
- Von der Idee zum dokumentierten Muster
- Struktur eines Pattern-Templates (Intent, Structure, Example, Consequences)
- Dokumentation und Kommunikation im Team
- Abschlussprojekt: Modulares Analyse-Toolkit mit mehreren Mustern
Anhang A: Überblick aller Design Patterns im Buch
- Kompakte Tabelle mit Kategorie, Einsatzzweck, Beispielprojekt
Anhang B: Vergleich mit Java/C++ Patterns
- Was funktioniert anders in Python – dynamische Typisierung, Duck Typing etc.
- Empfehlungen für den „Pythonic Way“
Anhang C: Übungsaufgaben mit Lösungen
- Singleton + Logger
- Factory mit mehreren Produktklassen
- Observer für Eventmanagement
- Strategy in einem Rechensystem
- Ausführlich kommentierte Lösungen