Dirk Richter
Software-Entwicklung und Architektur

Spielen SOLID Prinzipien heute (2025) noch eine Rolle?


Inhaltsverzeichnis

Einleitung

Die SOLID-Prinzipien gelten seit über zwei Jahrzehnten als Fundament für wartbare und flexible Softwarearchitektur im Bereich der objektorientierten Programmierung. Doch wie relevant sind diese Prinzipien heute noch, angesichts moderner Frameworks, Dependency-Injection-Container und anderer Architekturtrends? Dieser Artikel gibt einen Überblick über SOLID, beleuchtet deren Ursprung und bewertet ihre heutige Bedeutung im Vergleich zu aktuellen Best Practices wie dem Law of Demeter.


Was sind die SOLID-Prinzipien?

Die SOLID-Prinzipien wurden um das Jahr 2000 von Robert C. Martin (auch bekannt als „Uncle Bob“) formuliert und gelten als Leitfaden für gutes objektorientiertes Design. Sie stehen für:

  1. Single Responsibility Principle (SRP)
    Eine Klasse sollte nur eine einzige Verantwortlichkeit haben.
    Ziel ist die Trennung von Aufgaben, damit Änderungen nur minimale Auswirkungen haben.

  2. Open-Closed Principle (OCP)
    Software sollte offen für Erweiterung, aber geschlossen für Veränderung sein.
    Funktionalität wird erweitert, ohne bestehenden Code zu ändern.

  3. Liskov Substitution Principle (LSP)
    Abgeleitete Klassen sollten sich wie ihre Basisklassen verhalten.
    Subtypen dürfen das Verhalten der Basisklasse nicht verletzen.

  4. Interface Segregation Principle (ISP)
    Clients sollten keine Interfaces implementieren müssen, die sie nicht benötigen.
    Viele kleine, spezialisierte Schnittstellen sind besser als eine große, universelle.

  5. Dependency Inversion Principle (DIP)
    Abhängigkeiten sollten auf Abstraktionen basieren, nicht auf konkreten Implementierungen.
    Dadurch wird der Code flexibler und besser testbar.


Historischer Hintergrund

Robert C. Martin entwickelte die SOLID-Prinzipien in einer Zeit, in der objektorientierte Programmierung und klassische Klassenhierarchien das Design dominierten. Viele Systeme litten unter schlecht strukturiertem, eng gekoppeltem Code und schwer zu wartenden Vererbungsbäumen. Die SOLID-Prinzipien sollten helfen, diese Probleme zu vermeiden und die Software wartbarer, erweiterbar und testbarer zu machen.


Die Rolle von LSP, ISP und OCP heute

Liskov Substitution Principle (LSP)

Das LSP ist eng mit klassischer Vererbung verbunden. In modernen Softwareprojekten wird Vererbung jedoch zunehmend durch Komposition, Schnittstellen und lose Kopplung ersetzt. Viele Frameworks und Architekturen setzen weniger auf tiefe Vererbungshierarchien, wodurch das LSP in der Praxis oft weniger relevant ist. Es bleibt wichtig, wenn man mit Frameworks oder APIs arbeitet, die auf Vererbung setzen, spielt aber im Alltag vieler Entwickler keine zentrale Rolle mehr.

Interface Segregation Principle (ISP)

Das ISP fordert kleine, spezifische Interfaces. In aktuellen Entwicklungspraktiken werden Interfaces ohnehin meist granular und spezialisiert gestaltet – oft durch Frameworks und Dependency Injection (DI) gefördert. Moderne Sprachfeatures (wie Default-Methoden in C# oder Java) und Microservices-Architekturen führen dazu, dass Interface-Segregation oft „von selbst“ eingehalten wird. Das ISP ist somit in vielen Projekten kein explizites Problem mehr.

Open-Closed Principle (OCP)

OCP verlangt, dass Erweiterungen ohne Änderungen am bestehenden Code möglich sind. Durch die weite Verbreitung von DI-Containern, Modularisierung und Plugin-Architekturen wird das OCP heute meist automatisch umgesetzt. Neue Funktionalitäten können als neue Implementierungen oder Module eingebunden werden, ohne die Kernlogik zu verändern. Das Prinzip bleibt relevant, wird aber durch moderne Tools und Architekturkonzepte weitgehend „out of the box“ unterstützt.


Aktuelle, wichtigere Prinzipien: SRP, DIP und Law of Demeter

Single Responsibility Principle (SRP) und Dependency Inversion Principle (DIP)

Diese beiden Prinzipien sind heute nach wie vor essenziell:

Law of Demeter (LoD)

Neben SRP und DIP gewinnt das Law of Demeter („Prinzip der geringsten Kenntnis“) zunehmend an Bedeutung. Es besagt, dass ein Objekt nur mit seinen direkten “Freunden” kommunizieren sollte, also keine tiefen Objektketten durchlaufen darf (z.B. a.b.c.d.doSomething()). Die Einhaltung dieses Prinzips fördert:

Gerade in komplexen Anwendungen, Microservices und modernen Architekturen ist die Vermeidung von Law-of-Demeter-Verletzungen oft entscheidend für den langfristigen Erfolg eines Projekts.


Fazit

Die SOLID-Prinzipien sind weiterhin wertvolle Leitlinien, insbesondere SRP und DIP. Andere Prinzipien wie LSP, ISP und OCP haben durch die Entwicklung moderner Frameworks, DI-Container und modularer Architekturen an praktischer Bedeutung verloren, werden aber oft automatisch eingehalten.
Stattdessen rücken Prinzipien wie das Law of Demeter, Clean Code und explizite Trennung von Verantwortlichkeiten in den Vordergrund, um die Wartbarkeit, Flexibilität und Testbarkeit moderner Software sicherzustellen.

#Technicaldebt #Solid #Cleancode #Antipattern