SOLID er en akronym inden for software og programmering, der repræsenterer en række designprincipper, der sigter mod at skabe mere robust og vedligeholdelsesvenlig kode.
Disse principper kan anvendes inden for forskellige programmeringssprog. Ved at følge SOLID-principperne kan udviklere opnå mere fleksibel og vedligeholdelsesvenlig kode.

Her er et par kilder som også forklare SOLID meget godt!
How principled coders outperform the competition
Med andre ord, hver klasse eller modul skal kun have ét ansvar. Dette princip hjælper med at organisere kode på en måde, der gør det lettere at vedligeholde og forstå. Hvis en klasse eller modul har mere end et ansvar, kan det føre til en situation, hvor ændringer i ét ansvar kan påvirke de andre, hvilket kan føre til uforudsete fejl og gøre koden sværere at arbejde med.
Det er meget tæt forbundet med DRY, så hvis man vil have nogle praktiske eksempler kan man se under Eksempler
Eksempel i C#:
// Dårlig praksis
class Kunde
{
public void SendEmail()
{
// Sender email til kunden
}
public void BeregnRabat()
{
// Beregner rabat for kunden
}
public void GemKundeData()
{
// Gemmer kundedata i databasen
}
}
// God praksis
class Kunde
{
public void SendEmail()
{
// Sender email til kunden
}
}
class Rabatberegner
{
public void BeregnRabat(Kunde kunde)
{
// Beregner rabat for kunden
}
}
class KundeRepository
{
public void GemKundeData(Kunde kunde)
{
// Gemmer kundedata i databasen
}
}
Eksempel i C#:
// Dårlig praksis
class Cirkel
{
public void BeregnAreal(float radius)
{
// Beregner areal af en cirkel
}
public void BeregnOmkreds(float radius)
{
// Beregner omkreds af en cirkel
}
}
// God praksis
abstract class Figur
{
public abstract float BeregnAreal();
public abstract float BeregnOmkreds();
}
class Cirkel : Figur
{
private float radius;
public Cirkel(float radius)
{
this.radius = radius;
}
public override float BeregnAreal()
{
return Math.PI * radius * radius;
}
public override float BeregnOmkreds()
{
return 2 * Math.PI * radius;
}
}