Wissen von A bis Z

SOLID-Prinzipien

SOLID ist der Knigge für guten Code – wer sich daran hält, wird auf der nächsten Code-Review-Party seltener schräg angeschaut.

SOLID ist ein Akronym für fünf objektorientierte Designprinzipien: Single Responsibility (SRP), Open/Closed (OCP), Liskov Substitution (LSP), Interface Segregation (ISP) und Dependency Inversion (DIP). Sie sollen helfen, Klassen und Module so zu strukturieren, dass sie verständlich, erweiterbar und stabil bleiben.

Konkret bedeutet SRP, dass eine Klasse nur einen Grund haben sollte, sich zu ändern; OCP fordert, dass Module für Erweiterungen offen, für Modifikationen aber geschlossen sind. LSP verlangt, dass Subtypen ihre Basistypen nahtlos ersetzen können; ISP, dass Clients nur von den Schnittstellen abhängen, die sie wirklich nutzen; DIP, dass abstrakte Module nicht von Details abhängen, sondern beide von Abstraktionen.

SOLID wirkt damit gegen typische Symptome schlechten Designs wie Rigidität, Fragilität und Unbeweglichkeit; Änderungen an einer Stelle sollen nicht zu Kaskaden in scheinbar unzusammenhängenden Modulen führen.

Die zugrunde liegenden Prinzipien wurden in den 1990er Jahren von Robert C. Martin formuliert; das Akronym SOLID selbst wurde später von Michael Feathers vorgeschlagen, um die Liste prägnant zusammenzufassen. Insbesondere im Zusammenhang mit objektorientierter Sprachen wie Java, C# und C++ wurden sie zum Standardrepertoire.

SOLID hat seinen festen Platz in Lehrbüchern, Vorstellungsgesprächen und Code Reviews.

Zurück