Name, Kurzform | Interface Segregation Prinzip |
Synonyme |
Schnittstellenaufteilungsprinzip,
Interface-Aufteilungsprinzip,
Prinzip
der Abtrennung von Schnittstellen,
ISP |
Beschreibung | Software-Elemente („Clients“) sollten nicht von Schnittstellen abhängen, die sie nicht benötigen. |
Erläuterung |
Das
ISP ist ein leicht nachvollziehbares, an eine Tautologie
grenzendes Prinzip, scheint es doch kaum vorstellbar, dass man je
Abhängigkeiten in Kauf nehmen möchte, die gar nicht erforderlich
sind.
Die
überflüssige Abhängigkeit muss allerdings nicht immer
offensichtlich sein: Sie kann sich über mehrere Ebenen einer
Typhierarchie ergeben und erst im Lauf der Zeit entstehen.
Die
von Robert C. Martin verwendeten Begriffe Interface Pollution
und Fat Interface machen das Prinzip anschaulich.
Folgt man dem ISP konsequent, so
mündet dies in einem Interface-Entwurf, der auf den jeweiligen
Rollen der Clients basiert. In [Steimann 2001] wird dieser Ansatz
zugespitzt, indem die beiden Konzepte „Rolle“ und „Interface“
gleichgesetzt werden. |
Beispiele |
|
Historie |
|
Art des Prinzips |
|
Grad der formalen Spezifikation |
Hoch.
|
Vorteile |
Liefert
für Interfaces eine Operationalisierung des Prinzips der hohen
Kohäsion.
|
Nachteile | - |
Übergeordnete Prinzipien |
|
Abgleitete Prinzipien | - |
Qualitätsmerkmale | Einfachheit (+), Änderbarkeit (+), Korrektheit (+) |
Quellen:
Robert C. Martins Blog Principles of
OOD
[Steimann 2001] – Role =
Interface: A Merger of Concepts, Friedrich Steimann, Journal of
Objekt-Oriented Programming (2001)
[Martin 2002] – Agile
Software Development. Principles, Patterns, and Practices, Robert C.
Martin (2002)