In ingegneria del software, SOLID è un acrostico riferito a cinque principi dello sviluppo del software orientato agli oggetti descritti da Robert C. Martin in diverse pubblicazioni dei primi anni 2000.[1][2] Tali principi vengono detti SOLID principles (letteralmente "principi solidi"). La parola è un acronimo che serve a ricordare tali principi (Single responsibility, Open-closed, Liskov substitution, Interface segregation, Dependency inversion)[3], e fu coniata da Michael Feathers.
I principi SOLID sono intesi come linee guida per lo sviluppo di software leggibile, estendibile e manutenibile, in particolare nel contesto di pratiche di sviluppo agili e fondate sull'identificazione di code smell e sul refactoring.
I cinque principi SOLID
Lettera |
Principio |
Acronimo |
In breve
|
S |
Single responsibility principle o principio di singola responsabilità |
SRP |
Afferma che ogni classe dovrebbe avere una ed una sola responsabilità, interamente incapsulata al suo interno.
|
O |
Open/closed principle o principio aperto/chiuso |
OCP |
Un'entità software dovrebbe essere aperta alle estensioni, ma chiusa alle modifiche.
|
L |
Liskov substitution principle o principio di sostituzione di Liskov |
LSP |
Gli oggetti dovrebbero poter essere sostituiti con dei loro sottotipi, senza alterare il comportamento del programma che li utilizza.
|
I |
Interface segregation principle o principio di segregazione delle interfacce |
ISP |
Sarebbero preferibili più interfacce specifiche, che una singola generica.
|
D |
Dependency inversion principle o principio di inversione delle dipendenze |
DIP |
Una classe dovrebbe dipendere dalle astrazioni, non da classi concrete.
|
Note
Voci correlate
Concetti base e argomenti correlati
Principi di sviluppo e di design