Sto imparando il principio di inversione delle dipendenze. Dichiara che:
High level modules should not depend upon low-level modules. Both should depend upon abstractions.
Per un po 'ho cercato di capire cosa significa che sia i componenti di alto livello che i componenti di basso livello si basano sulle astrazioni e sono dipendenti da loro .
Suppongo che entrambi dovrebbero dipendere dalla stessa astrazione in qualche modo. Per favore correggimi se questo è sbagliato.
Sono arrivato a qualche conclusione su cosa significhi. Si prega di confermare se questo è accurato.
" I componenti di alto livello dipendono dall'astrazione" - Significato:
I componenti di alto livello parlano con un'interfaccia per comunicare con i componenti di basso livello , invece di comunicare direttamente con componenti di basso livello concreti. I componenti di basso livello implementano questa interfaccia.
" I componenti di basso livello dipendono dall'astrazione" - Significato:
I componenti di basso livello sono definiti e progettati nei termini dell'interfaccia. Sono progettati per adattarsi all'interfaccia . Sono dipendenti dall'interfaccia, nel modo in cui l'interfaccia definisce come sono progettati. (Spesso le classi di basso livello implementano tale interfaccia).
In questo modo, sia i componenti di alto livello che quelli di basso livello sono "dipendenti dall'astrazione", ma in modi diversi.
Questa è una buona comprensione?