FC ConcursosFC Concursos

Questão FC296576

Uma empresa especializada no desenvolvimento de aplicações empresariais escaláveis enfrenta dificuldades na manutenção do seu código devido ao alto acoplamento entre classes. Os de

Questões sem classificação de assunto (TI - Segurança da Informação)

CESGRANRIO · 2025

Uma empresa especializada no desenvolvimento de aplicações empresariais escaláveis enfrenta dificuldades na manutenção do seu código devido ao alto acoplamento entre classes. Os desenvolvedores perceberam que muitas classes criam instâncias de seus próprios objetos dependentes, dificultando os testes unitários, a reutilização de código e a troca de implementações sem afetar outras partes do sistema. Para resolver esse problema, o arquiteto de software sugere o uso do padrão Injeção de Dependências (Dependency Injection – DI). A sugestão do arquiteto sobre o uso de Injeção de Dependências (DI) considera que esse padrão

  1. cria manualmente todas as instâncias de objetos dentro das classes para garantir total controle sobre suas dependências.
  2. elimina demandas por composição de objetos e por extensibilidade das aplicações, facilitando o gerenciamento do ciclo de vida.
  3. injeta dependências estáveis, que ainda estão em desenvolvimento e que têm comportamento não determinístico, no construtor das classes.
  4. permite que dependências sejam passadas externamente para um objeto, reduzindo o acoplamento e facilitando a testabilidade.
  5. utiliza verificações de erro em tempo de execução para capturar falhas de comunicação entre objetos dependentes.
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

A alternativa está correta porque a Injeção de Dependências define que objetos não criam suas próprias dependências; em vez disso, essas dependências são fornecidas externamente ao objeto.

Esse mecanismo promove a Inversão de Controle: quem monta o grafo de objetos (container ou código chamador) injeta implementações, reduzindo o acoplamento entre classes e permitindo trocar componentes sem alterar consumidores.

Na prática, usar constructor injection para dependências obrigatórias e setter injection para opcionais facilita passar versões de teste (por exemplo, mocks ou stubs), melhorando a testabilidade.

Além disso, promove reutilização e manutenção: classes focam em lógica de negócio, enquanto a composição e o ciclo de vida das dependências ficam centralizados e substituíveis.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo