Monat: Januar 2016

Liskov Substituion Principle

Einführung

1987 wurde das Liskov Substituion Principle (LSP), oder zu deutsch Liskovsche Substitutionsprinzip, von Barbara Liskov vorgestellt. Es ist eine spezielle Regelung für Subtypisierung von Klassen und besagt:

Ein Programm, das Objekte einer Basisklasse verwendet muss auch mit davon abgeleiteten Klassen funktionieren ohne, dass das die Funktion eingeschränkt wird.

Ist-Eine-Beziehung

Wird eine neue Klasse von einer bestehenden Klasse abgeleitet, erbt die neue Klasse sämtliche Eigenschaften und Methoden. Neue Methoden und Eigenschaften werden dann zu den bestehenden hinzugefügt und können auf diese zugreifen. Hierbei spricht man meist von einer Ist-Eine-Beziehung. Beispielsweise wäre die Klasse Cat von der Basisklasse Animal abgeleitet. Die Beziehung würden dann „Eine Katze ist ein Tier“ lauten und damit die Ableitung begründen.

Open Closed Principle

Einführung

Das Open-Closed-Prinzip (Prinzip der Offen- und Verschlossenheit) kurz OCP wird von Bertrand Meyer wie folgt beschrieben:

„Module sollten sowohl offen für Erweiterungen,
als auch verschlossen für Modifikationen sein“.

Dies bedeutet, dass das Verhalten eines Moduls (Klasse, Methode …) erweitert werden kann, ohne den Ursprünglichen Quellcode verändern zu müssen. Die ursprüngliche Version eines Moduls wird demnach nicht mehr bearbeitet sondern das Verhalten in künftigen Versionen lediglich erweitert.

Am Beispiel einer kompilierten Klassenbibliothek würde eine Erweiterung durch eine Ableitung stattfinden. Die ursprüngliche Klasse bleibt dabei für Modifikationen verschlossen. Dadurch werden nötige Anpassungen an allen Klassen, welche die Bibliothek verwenden, verhindert.

Single Responsibility Principle

Einführung

Das Single Responsibility Principle (SRP) – zu deutsch „Prinzip der eindeutigen Verantwortlichkeit“ sagt aus, dass jede Klasse oder Modul nur eine einzige Aufgabe innerhalb eines Programmes erledigen soll und dafür nur Funktionen zur Erfüllung dieser Aufgabe enthält. Es ist daher ein Prinzip zur Strukturierung das dem Entwickler erlaubt, Funktionalität logisch zu Gruppieren.

Robert C. Martin, unter anderem Autor der , drückt es folgendermaßen aus:

“There should never be more than one reason for a class to change.”
“Es sollte nie mehr als einen Grund geben, eine Klasse zu ändern.“

Er stützt seine Aussage wiederrum auf das Prinzip der Kohäsion.