Princípios SÓLIDOS Desmistificados — (D)

Apr 17 2023
Princípio de Inversão de Dependência
As classes devem depender da abstração, mas não da concreção, o que significa que os módulos de alto nível não devem depender dos módulos de baixo nível. Ambos devem depender da abstração.

As classes devem depender da abstração, mas não da concreção, o que significa que os módulos de alto nível não devem depender dos módulos de baixo nível. Ambos devem depender da abstração.

Cenário de amostra

Vamos usar o mesmo cenário com a classe AreaCalculator e adicionar novas funcionalidades a ela. Desta vez, o usuário gostaria de introduzir a inversão na classe AreaCalculatorDisplay .

Para não violar o Princípio de Inversão de Dependência, criamos uma interface chamada ICalculator que é implementada pela classe AreaCalculator e essa abstração é consumida pela classe AreaCalculatorDisplay.

Portanto, mesmo que a funcionalidade ou os métodos dentro de AreaCalculator mudem , AreaCalculatorDisplay pode funcionar sem interromper o fluxo funcional do aplicativo devido ao nível de abstração da interface de alto nível.

Principais benefícios

  1. Módulos de alto nível não precisam depender de módulos de baixo nível. Ambos podem facilmente depender da abstração.
  2. O módulo de baixo nível pode realizar a implementação da interface.
  3. Flexibilidade e escalabilidade de código aprimoradas.