Die "SOLID principles" sind Prinzipien zur Organisation von (objektorientiertem) Programm-Code. SOLID ist ein Akronym und steht für
S: Single responsibility principle
O: Open-closed principle
L: Liskov substitution principle
I: Interface segratetion principle
D: Dependency inversion principle
S – Single responsibility principle
“A class should only have a single responsibility, that is, only changes to one part of the software’s specification should be able to affect the specification of the class.”
Jede Klasse/Methode/Modul hat immer nur eine Aufgabe.
O – Open-closed principle
Jede Entität ist offen für Erweiterungen, aber geschlossen für Veränderungen.
L – Liskov substitution principle
Jedes Objekt O in einem Programm soll ersetzbar sein von einem Objekt On, solange On von O abgeleitet ist, ohne dass der Programmfluss sich ändert.
I – Interface segregation principle
Jedes interface soll nur die Methoden zur Verfügung stellen, die nötig sind.
“Many client-specific interfaces are better than one general-purpose interface.”
D – Dependency inversion principle
Dieses Prinzip besteht aus zwei Teilen (nach Robert C. Martin: The Dependency Inversion Principle):
Module hoher Ebenen sollten nicht von Modulen niedriger Ebenen abhängen. Beide sollten von Abstraktionen abhängen.
Abstraktionen sollten nicht von Details abhängen. Details sollten von Abstraktionen abhängen.
Quellen: