SOLID
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. 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), 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.
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
[modifica | modifica wikitesto]| 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
[modifica | modifica wikitesto]- ^ Agile Software Development: Principles, Patterns and Practices. Pearson Education. 2002. ISBN 0-13-597444-5
- ^ The Principles of OOD, Robert C. Martin, Ultima verifica 11:29, 29 mar 2013 (CET) (NOTA: l'acronimo SOLID non è usato, in quanto attribuitogli in seguito)
- ^ riflessionidiunnerd.wordpress.com, https://riflessionidiunnerd.wordpress.com/2018/11/29/i-principi-solid/#more-14.
Voci correlate
[modifica | modifica wikitesto]Concetti base e argomenti correlati
[modifica | modifica wikitesto]- Metodologia agile
- Metodologia adattabile o Development Adaptive Software Development
- Riuso di codice
- Programmazione ad oggetti
- Classe astratta