Grundlagen der objektorientierten Programmierung (OOP)
Eingeordnet in Informatik
Geschrieben am in
mit einer Größe von 2,68 KB
Was ist Modularität?
Ein Modul ist eine Gruppe von Komponenten, die einen gemeinsamen Zweck verfolgen. Diese Komponenten können Typen, Variablen, Konstanten, Prozeduren oder Funktionen umfassen.
- Kapselung: Ein Modul kapselt seine Komponenten. Es macht nur bestimmte Komponenten nach außen hin bekannt (Export), während andere intern verborgen bleiben.
- Komplexität: Mit dem Wachstum der Software von einfachen Assembler-Programmen hin zu Systemen mit Millionen von Codezeilen ist die Aufteilung in unabhängige Module essenziell geworden.
Softwarequalität und OOP
Die objektorientierte Programmierung (OOP) bietet eine neue Art des Denkens und Designs. Wichtige Qualitätsfaktoren sind:
- Effizienz: Optimale Ressourcennutzung.
- Portabilität: Einfache Übertragbarkeit auf verschiedene Systeme.
- Robustheit: Stabilität auch in ungewöhnlichen Situationen.
- Wartbarkeit: Einfache Erweiterbarkeit und Anpassung an geänderte Spezifikationen.
Die vier Säulen der OOP
Das Objektmodell basiert auf vier wesentlichen Elementen:
1. Abstraktion
Konzentriert sich auf die externe Sicht eines Objekts und trennt das wesentliche Verhalten von der internen Implementierung.
2. Kapselung (Information Hiding)
Der Prozess, alle Details eines Objekts zu verbergen, die nicht zu seinen wesentlichen Merkmalen gehören. Dies schützt den internen Zustand vor unbefugtem Zugriff.
3. Modularität
Die Unterteilung einer Anwendung in kleinere, unabhängige Teile, die separat kompiliert werden können.
4. Hierarchie
Die Ordnung von Abstraktionen, primär durch Vererbung (Generalisierung/Spezialisierung) und Aggregation (Teil-Ganzes-Beziehung).
Polymorphismus
Polymorphismus beschreibt die Fähigkeit, dass verschiedene Objekte auf dieselbe Nachricht (Methodenaufruf) unterschiedlich reagieren können. Dies ermöglicht eine dynamische Bindung zur Laufzeit und erhöht die Flexibilität des Codes.
Entwicklungszyklus
Im Gegensatz zum starren Wasserfall-Modell setzt die objektorientierte Entwicklung auf iterative Prozesse. Dies fördert:
- Wiederverwendbarkeit: Durch gut durchdachte Klassenstrukturen.
- Wartbarkeit: Änderungen an der internen Implementierung beeinflussen nicht die öffentliche Schnittstelle.
- Produktivität: Durch die Modellierung der realen Welt und die Konsistenz zwischen Analyse, Design und Implementierung.