Die sieben Grundprinzipien der OOP [1]
- Prinzip einer einzigen Verantwortung
- Trennung der Anliegen
- Wiederholungen vermeiden
- Offen für Erweiterungen, geschlossen für Änderung
- Trennung der Schnittstelle von der Implementierung
- Umkehr der Abhängigkeiten
- Mach es testbar
Program to interfaces
Dies ist ein relativ einfaches Prinzip. Jedes Modul darf nur über eine klar definierte Schnittstelle mit anderen Modulen kommunizieren. In Java wären das die Signaturen der Methoden mit ihren Parametern sowie die Festlegung der Funktionalität des jeweiligen Moduls.
Wird dieses Prinzip konsequent befolgt, kann ein Modul leicht durch ein verändertes / verbessertes Modul mit der gleichen Schnittstelle ausgetauscht werden.
Die Implementierung dieser Module spielt dabei keine Rolle, sie ist im Innern des Moduls verborgen (Datenkapselung).
Musterbeispiel aus dem Schulunterricht:
Wir schreiben eine Methode
public void sort(int[] zahlen)
deren Aufgabe es ist, einen int-Array von Zahlen zu sortieren. Wir können die Methode von jeder anderen Java-Methode aus aufrufen, die einen solchen Array zur Verfügung stellt und diesen sortiert haben möchte.
Wie der Sortieralgorithmus der Methode sort() dabei funktioniert, ist der aufrufenden Methode völlig egal, solange die Methode sort() das macht, was sie verspricht.
"Durch das Befolgen des Prinzips der Trennung der Schnittstelle von der Implementierung wird es möglich, Module auszutauschen, die die Schnittstelle implementieren. Das Prinzip ist auch unter der Formulierung Programmiere gegen Schnittstellen, nicht gegen Implementierungen bekannt." [1]
Quellen:
- Lahres et al.: Objektorientierte Programmierung, Rheinwerk Computing 2021.
- Barnes, Kölling: Java lernen mit BlueJ - Objects first. Pearson-Verlag 2019.
- Ullenboom: Java ist auch eine Insel, Rheinwerk Computing 2023.