Olá, José Luiz
- Qual a aplicação real do Ninject ?
Ninject é um framework para facilitar injeção de dependência. De acordo com a Wikipedia
Injeção de dependência (Dependency Injection, em inglês) é um padrão de desenvolvimento de programas de computadores utilizado quando é necessário manter baixo o nível de acoplamento entre diferentes módulos de um sistema. Nesta solução as dependências entre os módulos não são definidas programaticamente, mas sim pela configuração de uma infraestrutura de software (container) que é responsável por "injetar" em cada componente suas dependências declaradas. A Injeção de dependência se relaciona com o padrão Inversão de controle mas não pode ser considerada um sinônimo deste.
Resumindo: em vez de você instanciar os objetos com o operador new
, você simplesmente solicita uma instância do container de injeção de dependência (neste caso, o Ninject), que ele irá
instanciar e devolver uma instância pra você.
- Se eu não instalar, o que acontece com minha aplicação ? não funciona ? 3. Qual parte do código da aplicação, eu teria que tirar, ou não poderia mais usar se eu não quisesse usar o Ninject?
Não é obrigatório usar injeção de dependência, porém sua aplicação ficará com alto acoplamento caso você crie instâncias com operador new
em diversos pontos
do seu código. Se você precisar criar testes de unidade, vai descobrir que é muito difícil, ou impossível, criar testes para métodos que instanciam
objetos com o operador new
. Com injeção de dependência, por outro lado, você consegue substituir essas dependências por "mocks", que são "falsas instâncias",
e assim você pode realmente testar um método isoladamente.
Não é uma questão de funcionar ou não funcionar. Por exemplo, você pode criar um método de 50 mil linhas para implementar uma impressão de um relatório, e ainda assim
funcionar perfeitamente. Porém, 50 mil linhas para um método é um bom design? Outros desenvolvedores vão entender o que seu método faz? Você consegue criar
testes de unidade para ele? São essas questões que motivam o uso de injeção de dependência, não apenas o fato de funcionar ou não.