Was ist das Prinzip der Einzelverantwortung?
Beim Programmieren und Entwerfen von Computern ist das Prinzip der Einzelverantwortung ein Konzept, das die Ansicht vertritt, dass jede Klasse in einem Programm in der größeren Anwendung nur eine Funktion ausführen sollte. Diese Idee fördert teilweise einige der Ideale der objektorientierten Programmierung, wie z. B. die Kapselung, da sich eine ganze Klasse auf die Wahrnehmung einer einzelnen Verantwortung konzentriert und sich nur wenig auf externe Klassen verlässt. Gleichzeitig ist dies ein gewisser Gegensatz zu einigen Konzepten der frühen objektorientierten Programmierung, da die Funktion eines einzelnen Objekts von den Daten, die das Objekt verarbeitet, entkoppelt ist. Dies bedeutet, dass möglicherweise mehrere Objekte in Kombination erstellt werden müssen, um zu warten einige zentrale Daten. Das Prinzip der Einzelverantwortung ist die Grundlage für eine Art Entwurfsmodell, das als verantwortungsorientierter Entwurf bezeichnet wird.
Ein Beispiel für das Prinzip der einmaligen Verantwortung könnte ein herkömmlicher Telefonhörer sein. Einige Entwurfsprinzipien sehen das Mobilteil als ein einzelnes Objekt, das sowohl die Eingabe von der Telefonleitung als auch die Übertragung der Ausgabe vom Lautsprecher handhabt. Unter einem Modell mit einer einzigen Verantwortung, bei dem ein einzelnes Objekt nur eine einzige Verantwortung haben sollte, würde das Mobilteil aus mehreren separaten Objekten bestehen, die jeweils eine einzelne Funktion ausführen, z. B. nur Eingaben von der Telefonleitung empfangen oder nur die Daten über ausgeben die Hörmuschel.
Einer der Vorteile, die die Verwendung des Prinzips der Einzelverantwortung ermöglicht, ist ein sehr hohes Maß an Abstraktion und Modularität. Im Beispiel des Mobilteils kann entweder die Eingabe von der Telefonleitung oder die Art und Weise, wie das Signal an den Benutzer ausgegeben wird, geändert werden, ohne dass die benachbarten Klassen davon betroffen sind, solange sie denselben Schnittstellenvertrag einhalten. Darüber hinaus kann die Wiederverwendbarkeit bestimmter Komponenten sehr hoch sein, da jede Klasse vollständig gekapselt ist und sich, wenn überhaupt, nur sehr wenig auf umgebende Objekte stützt und sich stattdessen auf ihre eine Verantwortung konzentriert.
Eine Komplikation, die das Prinzip der einzelnen Verantwortung mit sich bringen kann, ist eine große Anzahl von Klassen und Objekten, die alle mit denselben Daten arbeiten. Dies kann einen großen Aufwand und einen komplizierten Entwurfsprozess bedeuten. Dies kann auch das Debuggen eines großen Programms erschweren, da ein einzelner Teil des Programms aus Tausenden kleiner Klassendateien bestehen kann.
Wenn das Prinzip der Einzelverantwortung durch ein verantwortungsbewusstes Design angewendet wird, werden die Daten und die Methoden zur Manipulation der Daten für Designzwecke getrennt. Dies führt zwar zu einer gewissen Freiheit, Kapselung und Modularität beim Entwurf, kann jedoch auch eine Reihe von Zwischenmustern und Entwürfen generieren, die verwendet werden müssen, um eine Reihe von Klassen zu unterstützen, die alle versuchen, gleichzeitig mit den Daten zu interagieren. Auf der anderen Seite kann es schwieriger werden, den Code zu ändern, wenn die Daten eines Objekts und die zum Bearbeiten verwendeten Methoden in einem einzigen Objekt mit mehreren Zuständigkeiten zusammengefasst werden, da das System skaliert, sich ändert oder komplexer wird.