SOLID står for et sæt af grundlæggende principper inden for softwaredesign, der bruges til at skabe vedligeholdelige, udvidelige og fleksible systemer. SOLID er et akronym dannet af begyndelsesbogstaverne i disse fem principper:
S- Single Responsibility Principle
En klasse eller et modul bør kun have ét enkelt ansvar. Dette hjælper med lettere vedligeholdelse og ændring af kode uden at påvirke andre funktionaliteter.
O- Open/Closed Principle
Koden skal være åben for udvidelse(tilføje nye funktioner), men lukket for ændring(ikke ændre eksisterende kode). Dette tilskynder til brug af arv, grænseflader eller andre udvidelsesmekanismer for at tilføje nye funktioner uden at ændre eksisterende kode.
L- Liskov Substitution Principle
Objekter i en underklasse skal være substituerbare med objekter i den overordnede klasse uden at påvirke programmets korrekthed. Dette sikrer, at arv implementeres sikkert og korrekt.
jeg- Interface Segregation Principle
Det er bedre at have små og specifikke grænseflader frem for en stor grænseflade med mange metoder. Dette hjælper med at undgå, at klasser bliver tvunget til at implementere unødvendige metoder.
D- Dependency Inversion Principle
Moduler på højt niveau bør ikke afhænge af moduler på lavt niveau. Begge burde afhænge af abstraktioner. Dette princip opfordrer til brugen af afhængighedsinjektion for at reducere tæt kobling mellem moduler og gøre systemet lettere at teste og udvide.
SOLID principper forbedrer kodestrukturen, fremmer modularitet og reducerer risikoen forbundet med ændringer. Disse principper kan anvendes på tværs af forskellige programmeringssprog og udviklingsmiljøer.