Qual é a diferença entre inversão de controle e injeção de d...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: A - A inversão de controle é um princípio e a injeção de dependências é uma técnica.
Para compreender o contexto da questão, é necessário entender o que cada um desses termos significa no âmbito da Engenharia de Software, mais especificamente em design e arquitetura de sistemas.
A inversão de controle (IoC) é um princípio de design de software onde o controle do fluxo de execução do programa é transferido de um componente central para vários componentes individuais. A ideia é retirar a responsabilidade de controle do fluxo de execução e de tomada de decisão de um componente central, geralmente comparado a uma "chamada de método tradicional", e distribuir essa responsabilidade entre os vários componentes do sistema. Isso permite que o comportamento do software seja estendido ou modificado sem alterar o núcleo central, proporcionando maior flexibilidade e modularidade.
Por outro lado, a injeção de dependências (DI) é uma técnica específica que pode ser utilizada para realizar a inversão de controle. A injeção de dependências permite que os objetos de um programa recebam os elementos de que necessitam (suas "dependências") de uma fonte externa ao invés de criá-los internamente. Isso significa que os módulos do sistema não precisam mais criar ou buscar suas dependências, pois elas são "injetadas" por um agente externo, como um contêiner IoC, que gerencia essas dependências de forma centralizada.
Portanto, enquanto a inversão de controle é um princípio amplo que aborda a transferência do controle do fluxo de execução, a injeção de dependências é uma técnica concreta usada para implementar esse princípio, facilitando a desacoplagem entre classes e módulos. Isso se alinha com os princípios de design como o SOLID, que visa promover um software mais maleável e fácil de manter.
A alternativa correta (A) é justificada pelo fato de que ela corretamente distingue entre o princípio (IoC) e a técnica (DI) que é usada para implementar o dito princípio em sistemas de software.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo