Informatik Softwareentwicklung – SOLID-Prinzipien
Karteikarten zum Thema „Informatik“ · 15 Karten · von atrio. Beispiele: Wofür steht das Akronym SOLID in der Softwareentwicklung? · Was besagt das Single Res…
Karten
15 KartenWofür steht das Akronym SOLID in der Softwareentwicklung?
Rückseite
SOLID steht für fünf Prinzipien: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion.
Was besagt das Single Responsibility Principle (SRP)?
Rückseite
Eine Klasse sollte genau einen Grund für Änderungen haben – sie ist für genau eine Funktionalität oder ein Geschäftsbereich zuständig.
Wie erkennst du eine Verletzung des SRP im Code?
Rückseite
Eine Klasse ändert sich aus unterschiedlichen Gründen: z. B. Datenbankzugriff, Business-Logik und UI-Rendering in einer Klasse vereint.
Was fordert das Open/Closed Principle (OCP)?
Rückseite
Software-Entitäten sollen für Erweiterungen offen, aber für Modifikationen geschlossen sein – Verhalten erweiterbar ohne bestehenden Code zu ändern.
Wie setzt du OCP in der Praxis um?
Rückseite
Durch Abstraktionen (Interfaces, abstrakte Basisklassen) und Polymorphie: neue Verhalten durch neue Implementierungen, nicht durch Änderung bestehender Klassen.
Was besagt das Liskov Substitution Principle (LSP)?
Rückseite
Untertypen müssen durch ihre Basistypen ersetzbar sein, ohne die Korrektheit des Programms zu verletzen – Verträge der Basisklasse einhalten.
Nenne ein klassisches Beispiel für eine LSP-Verletzung.
Rückseite
Quadrat erbt von Rechteck: setWidth/setHeight verletzen die Invariante des Quadrats, da Rechteck unabhängige Seitenlängen erlaubt.
Was verlangt das Interface Segregation Principle (ISP)?
Rückseite
Clients sollen nicht von Interfaces abhängen, die sie nicht nutzen – viele spezifische Interfaces sind besser als ein allgemeines Monolith-Interface.
Worin unterscheidet sich ISP vom SRP?
Rückseite
SRP betrifft Klassenverantwortlichkeiten (eine Klasse, ein Grund zu ändern); ISP betrifft Interface-Granularität (Client nutzt nur das, was er braucht).
Was besagt das Dependency Inversion Principle (DIP)?
Rückseite
Module hoher Ebene sollen nicht von Modulen niedriger Ebene abhängen; beide sollen von Abstraktionen abhängen – Abstraktionen nicht von Details.
Unterscheide Dependency Inversion von Dependency Injection.
Rückseite
DIP ist ein Architekturmuster (Abhängigkeiten umkehren); DI ist ein Implementierungsmechanismus (Abhängigkeiten von außen injizieren).
Wie hängen die fünf SOLID-Prinzipien zusammen?
Rückseite
SRP und ISP trennen Verantwortlichkeiten; OCP und LSP ermöglichen sichere Erweiterungen; DIP koppelt Module lose – zusammen formen sie wartbare Architektur.
Wann ist ein bewusster Verstoß gegen SOLID sinnvoll?
Rückseite
Bei Prototypen, Throwaway-Code oder extrem einfachen Domänen, wo der Overhead der Abstraktionen den Nutzen übersteigt – bewusst und dokumentiert.
Welches Prinzip wird am häufigsten missverstanden?
Rückseite
OCP wird oft als 'niemals Code ändern' interpretiert; korrekt: bestehenden, getesteten Code nicht ändern, sondern durch neue Klassen erweitern.
Was ist der Hauptnutzen konsequenter SOLID-Anwendung?
Rückseite
Geringere Kopplung, höhere Kohäsion, leichter testbarer Code, einfachere Erweiterbarkeit und reduzierte technische Schulden über den Projektlebenszyklus.