Inversion of Control And Inversion of Control Container
Inversão de Controle é um princípio usado por frameworks como uma forma de permitir os desenvolvedores estenderem ou criarem aplicações. A idéia básica é que o framework conhece os objetos do programador e faz chamadas sobre eles. Este é o oposto de usar uma API, onde o código do desenvolvedor faz chamadas ao código da API. Assim os frameworks invertem o controle, eles fazem chamadas aos objetos do programador com base em alguns estímulos. O padrão Template Method “Não me ligue eu ligo para você” funciona desta maneira.
Inversion of Control Container Possibilita a criação e destruição dos objetos, fornecendo todas as dependências e configurações exigidas por uma classe. Desta maneira não é preciso obter e configurar as classes da qual uma classe depende. Isso reduz drasticamente o acoplamento de um sistema e como consequência facilita a reutilização e a testabilidade.
Existe uma confusão criada por pessoas que pensam que "Inversão de Controle"é um sinônimo de "Inversão de Controle de Contêineres. Como foi dito, Inversão de controle é um princípio mais amplo.
