As várias formas de fazer inversão de controle
Como eu já descrevi em um artigo anterior, a inversão de controle é um padrão de projeto (também chamado Design Pattern) que prega remover de uma classe o controle (ou responsabilidade) de instanciar outras classes e passar esse controle (responsabilidade) para um componente externo do sistema, sendo ele um framework, um container, uma classe, um serviço e etc. Inversão de controle por injeção de dependência A forma mais comum de fazermos a inversão de controle é por meio da injeção de dependência que é também outro desiign pattern que visa utilizar uma estrutura de software (container) para "injetar" as dependências usadas por uma classe em vez de deixar com essa classe a responsabilidade de instanciá-las (entenda por dependência como os atributos e métodos de outras classes ). Nessa definição você notou a correlação com a inversão de controle? Ao injetarmos em uma classe as dependências que ela vai utilizar (injeção de dependência) por consequên...