SOLID

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) is een afkorting die 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]

Overzicht[bewerken]

Letter Staat voor Concept
S SRP [4]
Single responsibility principle
een klasse zou maar één verantwoordelijkheid mogen hebben
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 ook[bewerken]

Bronnen[bewerken]

  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