SOLID
Aspetto
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)
- ^ 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