Estou aprendendo sobre o Princípio da Inversão de Dependências. Diz que:
Módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações.
Por um tempo, tentei entender o que significa que os componentes de alto nível e os de baixo nível dependem das abstrações e são dependentes delas .
Suponho que ambos devam depender da mesma abstração de alguma forma. Por favor, corrija-me se isso estiver errado.
Eu cheguei a alguma conclusão sobre o que isso significa. Confirme se está correto.
" Os componentes de alto nível dependem da abstração" - Significado:
Os componentes de alto nível conversam com uma interface para se comunicar com os componentes de baixo nível , em vez de se comunicar diretamente com os componentes de baixo nível de concreto. Os componentes de baixo nível implementam essa interface.
" Os componentes de baixo nível dependem da abstração" - Significado:
Os componentes de baixo nível são definidos e projetados nos termos da interface. Eles são projetados para caber na interface . Eles dependem da interface, da maneira que a interface define como eles são projetados. (Geralmente, as classes de baixo nível implementam essa interface).
Dessa forma, os componentes de alto nível e os de baixo nível são 'dependentes da abstração', mas de maneiras diferentes.
Essa é uma boa compreensão?