Skip navigation

 

     O Conceito de inversão de controle não é novo,  já existe a algum tempo  e visa resolver o problema do alto acoplamento entre classes. Quando um sistema é desenvolvido, e não se tem a visão de boas práticas de desenvolvimento de software, corre-se o risco de desenvolver o mesmo com um alto acoplamento entre as classes. Este alto acoplamento se dá quado existe uma dependência muito forte entre as mesmas e quanto maior for a cadeia de dependência  entre elas  será  mais custoso de se dar manutenção, perdendo até a dimensão do impacto que uma determinada mudança nesta cadeia de dependência  poderá causar . Com o fato dos softwares evoluírem muito rapidamente, você deverá evitar este tipo de problema na sua aplicação. Observe as figuras abaixo:

Dependência entre objetos sem inversão de controle

Dependência entre objetos utilizando inversão de controle

A discussão sobre inversão de controle é antiga, tem mais de 20 anos e foi Uncle Bob em 1996 que difundiu o termo. Ele dizia que “Módulos de Alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações” e “abstrações não devem depender de detalhes, devem depender de abstrações”,  é justamnete o que o exemplo acima nos mostra, note que na figura 1 apresenta uma forte dependência entre os ojetos A e B e qualquer mudança em qualquer um deles irá causar um impacto no outro, já na figura 2 há a inversã de controle em que o objeto A, já não depende concretamnete  do objeto B  e sim da sua abstração. É ai que está a inversão de controle, pois agora a dependência está na direção oposta antes a dependência estava na direção do objeto B e agora a dependência de ambos está na direção da abstração. E esta inversão de controle vai garantir o baixo acoplamento entre as classes facilitando a manutenção, caso seja necessário que a mesma se realize o impacto será bem menor. Existem varias maneiras de fazer inversão de controle e uma destas técnicas é a que aborademos em um próximo post que é a injeção de dependência que uma vez sendo utilizada, garante um baixo acoplamento entre as camadas e nos faz ter uma aplicação mais “plugável”, isto é assunto para um próximo post abraços e até a próxima.

Advertisement

2 Trackbacks/Pingbacks

  1. [...] in Uncategorized                 Em um post recente neste blog, falei sobre a inversão de controle ou inversão de dependência, que é uma técnica utilizada para diminuir o acoplamento entre [...]

  2. [...] Boas Práticas                 Em um post recente neste blog, falei sobre a inversão de controle ou inversão de dependência, que é uma técnica utilizada para diminuir o acoplamento entre [...]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.