Solid — D.I.P — Dependency Inversion Principle

Thiago Aragão
2 min readJan 16, 2019

--

O Dependency Inversion Principle (DIP) ou Princípio da Inversão de Dependência é a base para termos um projeto com um excelente design orientado a objetos, focado no domínio e com um arquitetura flexível.

O DIP é regido pela seguinte premissa:

Depend on abstractions, not on concretions.

ou

Dependa de abstrações e não de implementações.

De uma forma objetiva o princípio nos faz entender que sempre devemos depender de abstrações e não das implementações, afinal de contas, as abstrações mudam menos e facilitam a mudança de comportamento e as evoluções do código.

Vamos observar um exemplo de violação desse princípio?

No exemplo, podemos perceber que além de quebrar outros princípios do SOLID, a classe concreta Interruptor depende de uma outra classe concreta (Ventilador).

O Interruptor deveria ser capaz de acionar qualquer dispositivo independente de ser um ventilador uma lâmpada ou até mesmo um carro.

Vamos corrigir o exemplo aplicando o DIP?

Percebam que agora a classe concreta Interruptor depende da abstração de um IDispositivo e não mais de uma classe concreta.

Concluindo a analise…

O DIP trás uma série de benefícios, principalmente em relação a arquitetura de software.

O principio torna o aplicação focada na resolução dos problemas, fazendo da implementação um mero detalhe.

Tendo como base a afirmativa acima, podemos perceber que a abstração IDispositivo está diretamente vinculado com o cliente (Interruptor), tornando sua implementação (Ventilador, Lampada) um detalhe. : )

Identificar as abstrações é importante para que mantenhamos o projeto flexível, robusto e preparado para que as futuras implementações não sejam difíceis e complexas.

E assim terminamos a nossa série de artigos sobre SOLID.

Abordarei esses princípios em artigos próximos, durante a semana postarei quais são os planos para a próxima semana, fiquem ligados.

Bom, deixem seu comentário, curtam e compartilhem o artigo e a página, pois, além de me ajudar, isso irá ajudar a mais pessoas a lerem o artigo e aprender um pouco sobre os princípios também. : )

Grande [ ] e até a próxima.

--

--