Java Reference
In-Depth Information
1.1.1 Weiterentwickelbarkeit
Weiterentwickelbarkeit bedeutet nicht nur die Erweiterbarkeit im Rahmen einer
bestimmten Architektur, sondern auch die Wiederverwendbarkeit vorhandener Kom-
ponenten im Rahmen einer anderen Architektur. Die Weiterentwickelbarkeit wird
gefördert durch die Einhaltung
x des Interface Segregation-Prinzips,
x von Loose Coupling,
x des liskovschen Substitutionsprinzips,
x des Open-Closed-Prinzips und
x des Dependency Inversion-Prinzips.
Des Weiteren dienen Inversion of Control und verschiedene Techniken bei der Erzeu-
gung von Objekten wie z. B. Dependency Injection der Reduktion der schädlichen
Abhängigkeiten in erheblichem Maße, auch wenn sie nicht den Status eines Prinzips
haben.
Das Interface Segregation-Prinzip will unnötige Abhängigkeiten eines Moduls wie ei-
ner Klasse oder Komponente von nicht benötigten Schnittstellen vermeiden.
Kapselung und Abstraktion ermöglichen nicht nur eine schmale Schnittstelle, sondern
auch das Verstecken der Daten und der Methodenrümpfe eines Objekts im nicht zu-
gänglichen Inneren einer Kapsel ( Information Hiding ). Bei Einhalten des Information
Hiding sind die verschiedenen Objekte über schmale Schnittstellen als Abstraktion
nur schwach gekoppelt ( Loose Coupling ).
Bei Einhaltung des liskovschen Substitutionsprinzips können Programme, die Re-
ferenzen auf Objekte von Basisklassen verwenden, auch für Referenzen auf Objekte
von abgeleiteten Klassen verwendet werden. Dies stellt eine Erweiterung und damit
auch eine Weiterentwicklung dar.
Das Open-Closed-Prinzip fordert, dass vorhandene lauffähige Software nicht verän-
dert werden darf, die vorhandene Software aber erweiterbar sein soll.
Das Dependency Inversion-Prinzip dient zur Vermeidung bzw. Reduzierung von Ab-
hängigkeiten unter Modulen, die in einer hierarchischen Beziehung zueinander stehen.
1.1.2 Korrektheit
Das liskovsche Substitutionsprinzip postuliert, dass eine Referenz auf ein Objekt
einer Basisklasse jederzeit auch auf ein Objekt einer abgeleiteten Klasse zeigen kann.
Damit eine solche Ersetzung korrekt funktioniert, ist die Einhaltung des Prinzips
Design by Contract absolut erforderlich. Beide Prinzipien tragen zur Korrektheit
polymorpher Programme 8 wesentlich bei.
8
Korrektheit von Software umfasst viele Aspekte, siehe etwa [Gol12]. An dieser Stelle hier ist nur aus-
geführt, welche der behandelten objektorientierten Entwurfsprinzipien für den Entwurf einen Beitrag
zur Korrektheit liefern können.
Search WWH ::




Custom Search