SOLIDI Principi demistificati — (D)
Le classi devono dipendere dall'astrazione ma non dalla concrezione, il che significa che i moduli di alto livello non devono dipendere da moduli di basso livello. Entrambi devono dipendere dall'astrazione.
Esempio di scenario
Usiamo lo stesso scenario con la classe AreaCalculator e aggiungiamovi nuove funzionalità. Questa volta l'utente vorrebbe introdurre l'inversione nella classe AreaCalculatorDisplay .
Per non violare il principio di inversione delle dipendenze, abbiamo creato un'interfaccia chiamata ICalculator che è implementata dalla classe AreaCalculator e tale astrazione è consumata dalla classe AreaCalculatorDisplay.
Pertanto, anche se la funzionalità oi metodi all'interno di AreaCalculator cambiano , AreaCalculatorDisplay può funzionare senza interrompere il flusso funzionale dell'applicazione a causa del livello di astrazione dell'interfaccia di alto livello.
Principali vantaggi
- I moduli di alto livello non devono dipendere da moduli di basso livello. Entrambi possono facilmente dipendere dall'astrazione.
- Il modulo di basso livello può eseguire l'implementazione dell'interfaccia.
- Maggiore flessibilità e scalabilità del codice.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































