Java Reference
In-Depth Information
Die Einhaltung der beiden Prinzipien ermöglicht die polymorphe Verwendung von gan-
zen Programmsystemen, die Referenzen auf Objekte von Basisklassen enthalten. Die-
se Programme können dann auch korrekt für Referenzen auf Objekte von abgeleiteten
Klassen verwendet werden, ohne, dass bei jedem aktuellen Objekt eine Typprüfung
stattfinden muss. Die Wiederverwendung ganzer Programmsysteme ist mehr als nur
die Wiederverwendung einzelner Klassen im Falle der Vererbung oder Aggregation.
1.1.3 Verständlichkeit
Zur Verständlichkeit einer Klasse tragen wesentlich bei:
x Kapselung, Abstraktion und Information Hiding sowie
x Separation of Concerns und das Single Responsibility-Prinzip.
Das Prinzip der Kapselung hält die Daten und Methoden eines Objektes in der Kapsel
einer Klasse. Es ermöglicht eine schmale Schnittstelle eines Objekts nach außen als
Abstraktion seines Verhaltens. Die nicht in der schmalen Schnittstelle sichtbaren An-
teile des Verhaltens (Methodenrümpfe, Servicemethoden) und die Daten werden ver-
borgen ( Information Hiding ).
Das Single Responsibility-Prinzip und das Prinzip der Separation of Concerns be-
absichtigen beide vom Kern her dasselbe. Sie fordern beide, dass eine Klasse nur
einer einzigen Aufgabe nachgeht. Damit ist eine Klasse von anderen Klassen entkop-
pelt, ist in sich selbst kompakt und hat einen starken Zusammenhalt (engl. strong
cohesion ). Strong cohesion wurde bereits von Tom DeMarco [DeM79] gefordert:
"The more valid a module's reason for existing as a module, the more cohesive it is." 9
Da verschiedene Klassen verschiedene Aufgaben erfüllen, sind verschiedene Klassen
voneinander zu trennen, was die Übersichtlichkeit wesentlich erleichtert.
1.2 Kapselung, Abstraktion und Information Hiding
Die Begriffe Kapselung, Abstraktion und Information Hiding sind miteinander eng ver-
wandt. Im Folgenden werden die Begriffe und ihre Zusammenhänge erläutert:
x Kapselung
Der Begriff der Kapselung ist eines der wichtigsten Konzepte der objektorientierten
Programmierung. Es besteht in diesem Fall keine Trennung zwischen Daten und
Funktionen wie in der funktionsorientierten Programmierung, z. B. in C.
Methoden und Daten verschmelzen bei der Kapselung zu einem
Objekt. Daten und Methoden befinden sich also zusammen in
einer Kapsel vom Typ einer Klasse.
9 Frei übersetzt bedeutet das: Je besser begründet werden kann, warum ein Modul als Modul
überhaupt existiert, umso besser ist sein Zusammenhalt.
Search WWH ::




Custom Search