SOLID

vijf principes in software-ontwikkeling

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]

OverzichtBewerken

Letter Staat voor Concept
S SRP[4]
Single responsibility principle
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[5]
Open/closed principle
“software-entiteiten … moeten open zijn voor uitbreiding, maar gesloten voor wijziging.”
L LSP[6]
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[7]
Interface segregation principle
“veel client-specifieke interfaces zijn beter dan één algemene interface.”[8]
D DIP[9]
Dependency inversion principle
"men zou afhankelijk moeten zijn van abstracties, niet van concrete implementaties"[8]
Dependency injection is een manier om dit principe toe te passen.

Zie ookBewerken

BronnenBewerken

  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. Liskov Substitution Principle.
  7. Interface Segregation Principle.
  8. a b “Design Principles and Design Patterns”, Robert C. Martin (“Uncle Bob”), objectmentor.com. Laatst gelezen 2009-01-14.
  9. Dependency Inversion Principle.