Fortgeschrittene objektorientierte Programmierung mit Python
Fortgeschrittene objektorientierte Programmierung mit Python
Ein vertiefender Leitfaden zu Designprinzipien, Metaklassen, Mixin-Strukturen und Best Practices der OOP mit Python
Inhaltsverzeichnis
Kapitel 1: Objektorientierung – Rückblick und Einstieg ins Fortgeschrittene
- Wiederholung: Klassen, Objekte, Methoden
- Vererbung, Polymorphie, Kapselung
- Warum fortgeschrittene OOP sinnvoll ist
- Ziel dieses Buches: saubere, skalierbare Architektur
Kapitel 2: Klassendesign und Architekturprinzipien
- SOLID-Prinzipien in Python anwenden
- Komposition vs. Vererbung
- Abstrakte Klassen mit abc-Modul
- Mini-Projekt: Erweiterbares Nachrichtensystem
Kapitel 3: Eigenschaften, Deskriptoren und @property
- Kontrollierter Zugriff auf Attribute
- Getter, Setter und Deleter mit @property
- Eigene Deskriptoren erstellen (__get__, __set__, __delete__)
- Mini-Projekt: Validierte Benutzereingaben
Kapitel 4: Mixins und Mehrfachvererbung
- Was ist ein Mixin und wozu ist es gut?
- Regeln für sauberes Mixin-Design
- Der Method Resolution Order (MRO) verstehen
- Mini-Projekt: LoggingMixin für beliebige Klassen
Kapitel 5: Magische Methoden (Dunder Methods) gezielt einsetzen
- __str__, __repr__, __eq__, __lt__, __add__, __call__ usw.
- Vergleichs-, Container- und Kontextverhalten
- Mini-Projekt: Rechenklasse mit Operatorüberladung
Kapitel 6: Klassendekoratoren und Metaklassen
- Klassen dynamisch modifizieren mit Dekoratoren
- Einführung in Metaklassen (type, __new__, __init__)
- Einsatzgebiete: Validierung, automatische Registrierung
- Mini-Projekt: Registry für Plugin-Klassen
Kapitel 7: Designmuster objektorientiert umgesetzt
- Factory, Singleton, Strategy, Observer in Python
- Wie Design Patterns pythonisch aussehen
- Mini-Projekt: Konfigurierbare Objekterstellung mit Factory-Pattern
Kapitel 8: Fehlerbehandlung und eigene Ausnahmen
- Eigene Exception-Klassen definieren
- Fehlerhierarchien aufbauen
- Exceptions in OOP-Strukturen sinnvoll einsetzen
- Mini-Projekt: Fehlerklassen für Validierung und Zugriff
Kapitel 9: OOP und Testbarkeit
- Abhängigkeiten minimieren (Dependency Injection light)
- Mocking objektorientierter Komponenten
- Testen von Methoden und Zuständen
- Mini-Projekt: Testabdeckung in einem OOP-Modul
Kapitel 10: Praxisprojekt – Objektorientierte Anwendung in Schichten
- Strukturierung in Domäne, Services, Daten
- Klassen sauber entkoppeln
- Mini-Projekt: Lagerverwaltung mit Produkt-, Lager- und Report-Klassen
Anhang A: Übersicht über wichtige __magic__-Methoden
- Beschreibung und Einsatzbeispiele
Anhang B: Nützliche Standardmodule für OOP
- abc, dataclasses, functools, inspect, types
- Kurzübersicht mit Codebeispielen
Anhang C: Übungsaufgaben mit Lösungen
- Deskriptor schreiben
- Mixins kombinieren
- Metaklasse mit Validierung implementieren
- Lösungen mit Schritt-für-Schritt-Erklärung