Objektorientierte Projekte in Python für Fortgeschrittene
Objektorientierte Projekte in Python für Fortgeschrittene
Ein praxisorientierter Leitfaden zur Entwicklung größerer Anwendungen mit Klassen, Vererbung, Kapselung und Polymorphie
Inhaltsverzeichnis
Kapitel 1: Wiederholung der objektorientierten Grundlagen
- Klassen, Objekte und Methoden
- Konstruktoren und Attribute
- Kapselung, Vererbung, Polymorphie
- Warum OOP für größere Projekte sinnvoll ist
Kapitel 2: Projektplanung im objektorientierten Stil
- Von der Idee zur Struktur: UML-Diagramme und Klassendesign
- Verantwortlichkeiten verteilen (Single Responsibility Principle)
- Modularisierung und Dateistruktur
- Mini-Projekt: Erste Klassen für ein Ticketsystem
Kapitel 3: Projekt 1 – Aufgabenplaner mit Benutzerverwaltung
- Benutzer und Aufgaben als Objekte
- Verknüpfung durch Methoden und Attribute
- Speichern und Laden von Daten mit JSON
- Erweiterungen: Prioritäten, Deadlines, Status
Kapitel 4: Projekt 2 – Buchverwaltungssystem für eine Bibliothek
- Klassenstruktur: Buch, Benutzer, Ausleihe
- Vererbung: Medienarten mit unterschiedlichen Attributen
- Methoden für Ausleihen, Rückgaben und Verlängerungen
- Mini-Projekt: Berichtsfunktion für ausgeliehene Bücher
Kapitel 5: Projekt 3 – Einfache Banking-Anwendung mit Vererbung
- Basisklasse Konto, abgeleitete Klassen für Girokonto, Sparkonto
- Transaktionen als eigene Objekte
- Methoden für Ein-/Auszahlung, Überweisung
- Fehlerbehandlung und Validierung
Kapitel 6: Projekt 4 – Adventure-Spiel mit Raum- und Spielerklassen
- Objektstruktur für Spiellogik
- Räume, Gegenstände, Spieleraktionen
- Ereignisse und Zustandsverwaltung mit Methoden
- Erweiterungsidee: Kampf- und Dialogsystem
Kapitel 7: OOP-Designmuster in Python (Einführung)
- Singleton, Factory, Observer, Strategy
- Wann und wie sinnvoll einsetzen
- Mini-Projekt: Plugin-System mit Factory-Pattern
Kapitel 8: Testen objektorientierter Strukturen
- Unit-Tests für Klassen und Methoden
- Verwendung von unittest und mock
- Testdaten und Zustände simulieren
- Mini-Projekt: Testfälle für Banking-Projekt
Kapitel 9: Erweiterbarkeit und Wartbarkeit
- Schnittstellen und Abstraktion (ABC)
- SOLID-Prinzipien in Python anwenden
- Refactoring bei wachsenden Projekten
- Praxisbeispiel: Erweiterung des Aufgabenplaners
Kapitel 10: Abschlussprojekt – Objektorientiertes Inventarsystem
- Artikel, Kategorien, Lagerorte
- Ein-/Ausgänge, Lagerstand, Reports
- GUI oder CLI-Interface (optional mit tkinter oder argparse)
- Speichern der Datenbank als JSON/SQLite
Anhang A: Übersicht objektorientierter Konzepte in Python
- __init__, self, super(), @property, @staticmethod, @classmethod
- Übersicht über wichtige Schlüsselwörter und Begriffe
Anhang B: Tipps für größere OOP-Projekte
- Namensgebung, Dateistruktur, Modultrennung
- Versionierung mit Git und Dokumentation
Anhang C: Übungsaufgaben mit Lösungen
- Refactoring: Funktionen in Klassen umwandeln
- Objekte miteinander verknüpfen
- Erweiterbare Klassenhierarchie entwerfen
- Lösungen mit Kommentaren und Tests