Inversão de Controle em Orientação a Objetos
Gabarito: letra A. A inversão de controle (IoC) é um princípio no qual o fluxo de execução de um programa é delegado a um contêiner ou framework, que gerencia as dependências entre os objetos. Sua principal vantagem é o desacoplamento, que facilita a substituição de dependências reais por objetos simulados (mocks) durante os testes, aumentando a testabilidade do software.
Alternativa A — ✅ Correta ⟵ GABARITO
A inversão de controle permite que as dependências sejam injetadas de fora, tornando o código mais modular e testável. Com isso, é possível isolar unidades de código para testes unitários sem precisar de componentes reais (banco de dados, serviços externos), o que agiliza e simplifica os testes.
Alternativa B — ❌ Incorreta
Afirma que a inversão de controle aumenta o acoplamento. Na verdade, a IoC reduz o acoplamento, pois os objetos não instanciam suas dependências diretamente; elas são fornecidas por um contêiner, promovendo baixo acoplamento.
Alternativa C — ❌ Incorreta
Afirma que a inversão de controle reduz a portabilidade. A IoC não impacta negativamente a portabilidade; pelo contrário, ao desacoplar dependências, a troca de bibliotecas ou ambientes se torna mais fácil, podendo até aumentar a portabilidade.
Alternativa D — ❌ Incorreta
Simplificar os controles de segurança não é uma vantagem direta da inversão de controle. Embora a separação de preocupações possa auxiliar indiretamente, esse não é o benefício principal ou mais citado da IoC.
Alternativa E — ❌ Incorreta
Padronizar integrações com serviços externos não é uma vantagem intrínseca da inversão de controle. Embora a IoC possa ajudar na organização, a padronização é mais relacionada a contratos e interfaces, não sendo o foco do princípio.