Naar inhoud springen

SOLID

Uit Wikipedia, de vrije encyclopedie

SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) is een acroniem dat gebruikt wordt in verband met het programmeren van computers. Ze werd bedacht door Michael Feathers voor de eerste vijf principes die Robert C. Martin aangaf aan het begin van de jaren 2000[1][2][3] De afkorting staat voor de vijf belangrijkste principes in het object-georiënteerd programmeren. Deze principes samen maken het waarschijnlijker dat een programmeur een systeem zal maken dat duurzamer is en gemakkelijk te onderhouden of uit te breiden.[3] De SOLID-principes maken deel uit van een meer globale strategie van agile ontwikkeling en adaptief programmeren.[3]

Letter Staat voor Concept
S SRP
Single responsibility principle[4]
In tegenstelling tot wat veel ontwikkelaars denken, is SRP in SOLID niet het principe dat een klasse of functie één verantwoordelijkheid heeft. SRP in SOLID betekent dat de verantwoordelijkheid van het veranderen van een module bij 1 actor ligt. Een module kan zo simpel zijn als een klasse maar dit kan ook een groep van klasses zijn binnen een package.
O OCP
Open/closed principle[5]
"software-entiteiten … moeten open zijn voor uitbreiding, maar gesloten voor wijziging"
L LSP
Liskov substitution principle
"objecten in een programma zouden vervangbaar moeten zijn door instanties van hun subtypes zonder dat de juiste werking van het programma beïnvloed wordt"
I ISP
Interface segregation principle
"veel client-specifieke interfaces zijn beter dan één algemene interface"[6]
D DIP
Dependency inversion principle[7]
"men zou afhankelijk moeten zijn van abstracties, niet van concrete implementaties"[6]
  1. “Principles Of OOD”, Robert C. Martin (“Uncle BOB”), butunclebob.com, Laatst gelezen 2015-05-04.
  2. “Getting a SOLID start.”, Robert C. Martin (“Uncle Bob”), objectmentor.com. Laatst gelezen 2013-08-19.
  3. a b c “SOLID Object-Oriented Design”, Sandi Metz (Duke University), Talk given at the 2009 Gotham Ruby Conferentie in mei 2009. Laatst gelezen 2009-01-15.
  4. Single Responsibility Principle.
  5. Open/Closed Principle.
  6. a b “Design Principles and Design Patterns”, Robert C. Martin (“Uncle Bob”), objectmentor.com. Laatst gelezen 2009-01-14.
  7. Dependency Inversion Principle.