Java Reference
In-Depth Information
Nach dem Single Responsibility-Prinzip (SRP) der Objektorientierung sollte also
jede Klasse nur eine einzige Verantwortung haben. Alle Methoden sollen zur Erfüllung
dieser Aufgabe beitragen. Eine Änderung der Verantwortlichkeit einer Klasse betrifft
dann immer nur die jeweilige Klasse. Wenn in einer Klasse mehrere Verantwortlichkei-
ten wären, so könnte eine Änderung an einer Verantwortlichkeit die anderen Verant-
wortlichkeiten dieser Klasse beeinflussen.
Das entspricht der Strategie der Separation of Concerns. Nach dem Prinzip der Sepa-
ration of Concerns darf sogar jede Methode nur eine einzige Verantwortung haben.
Damit soll eine Methode nur geändert werden, wenn sich die Anforderungen an die
entsprechende Funktion geändert haben.
Man kann Separation of Concerns als einen prinzipiellen Prozess
der Zerlegung betrachten und das Single Responsibility-Prinzip
als ein objektorientiertes Design-Prinzip für Klassen.
Beispiel , angelehnt an [marsrp]:
Bild 1-2 zeigt ein einfaches Design, das mehrere Verantwortlichkeiten in einem Inter-
face und damit auch in der Implementierung beinhaltet:
«interface»
IClient
+ connect() : void
+ disconnect() : void
+ receive() : void
+ send() : void
Client
+ connect() : void
+ disconnect() : void
+ receive() : void
+ send() : void
Bild 1-2 Anwendung mit zwei Verantwortlichkeiten
Das Interface IClient gibt einerseits Operationen zum Verbindungsauf- und -abbau
und andererseits Operationen zur Übertragung von Daten vor. Die Implementierung
dieser Operationen soll in einer Klasse Client erfolgen. Diese Lösung verstößt aber
gegen das Single Responsibility-Prinzip, da ein Verbindungsauf- und -abbau und das
Senden/Empfangen von Daten zwei grundsätzlich verschiedene Verantwortlichkeiten
sind. Sie sollten deshalb getrennt voneinander behandelt werden. So können bei-
spielsweise die Mechanismen zum Senden und Empfangen von Datenpaketen ausge-
tauscht werden, ohne dass der Verbindungsauf- und -abbau davon beeinflusst wird.
Search WWH ::




Custom Search