Pular para o conteúdo principal

Questão de Engenharia de Software — UML — FUNDATEC 2023

Engenharia de SoftwareUML
Código
qq896808
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Programação de Sistemas na Tecnologia Java
Sobre injeção de dependência, analise as assertivas abaixo e assinale a alternativa correta.I. Recomenda-se implementar a injeção de dependência quando uma classe é dependente de outra.II. A injeção de dependência não permite desacoplar uma classe de suas classes dependentes, mas facilita o entendimento da implementação.III. Uma das formas de implementação é pela criação de um pool de objetos, no qual objetos são retirados para serem injetados em uma classe.
  1. ATodas estão corretas.
  2. BTodas estão incorretas.
  3. CApenas I e II estão corretas.
  4. DApenas I e III estão corretas.
  5. EApenas II e III estão corretas.
Revelar gabarito e comentário

GabaritoD — Apenas I e III estão corretas.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Injeção de Dependência

Gabarito: letra D. A injeção de dependência é uma técnica que promove o desacoplamento entre classes, transferindo a responsabilidade de criar e fornecer as dependências para um agente externo (container ou framework). A assertiva I está correta, pois a técnica é recomendada justamente quando uma classe depende de outra; a assertiva II está incorreta, pois a injeção de dependência permite desacoplar a classe de suas dependências; e a assertiva III está correta, pois uma das formas de implementação é o pool de objetos, onde objetos são retirados para serem injetados.

A injeção de dependência (DI) é um padrão de projeto que implementa o princípio da inversão de controle (IoC): em vez de a classe criar suas próprias dependências internamente (com new), ela as recebe prontas de um agente externo. Isso reduz o acoplamento, pois a classe passa a depender de abstrações (interfaces) e não de implementações concretas, facilitando a testabilidade e a manutenção.

Existem várias formas de implementar a injeção de dependência, sendo as mais comuns:

  • Injeção por construtor: a dependência é passada como parâmetro do construtor.

  • Injeção por setter: a dependência é atribuída por um método setter.

  • Injeção por interface: a classe implementa uma interface que expõe um método para receber a dependência.

  • Pool de objetos: um conjunto de objetos pré-instanciados é mantido em um pool; quando uma classe precisa de uma dependência, um objeto é retirado do pool e injetado. Essa abordagem é útil para otimizar a criação de objetos caros.

A banca explora a confusão entre acoplamento e entendimento: a injeção de dependência reduz o acoplamento, e não o contrário. A assertiva II inverte esse conceito, afirmando que a técnica "não permite desacoplar", o que é falso.

1Objetivo
Desacoplar classes
Facilitar testes
Implementa IoC
2Formas de implementação
Construtor
Setter
Interface
Pool de objetos
3Benefícios
Reduz acoplamento
Depende de abstrações
Facilita manutenção
Injeção de dependência (DI)
LEVELsoulevel.com.br
Injeção de dependência (DI): Objetivo (Desacoplar classes, Facilitar testes, Implementa IoC); Formas de implementação (Construtor, Setter, Interface, Pool de objetos); Benefícios (Reduz acoplamento, Depende de abstrações, Facilita manutenção)

Item I — ✅ Correto

A assertiva afirma que "recomenda-se implementar a injeção de dependência quando uma classe é dependente de outra". Isso está correto: a injeção de dependência é uma técnica recomendada exatamente para gerenciar e reduzir o acoplamento entre classes dependentes, tornando o sistema mais flexível e testável.

Item II — ❌ Incorreto

A assertiva afirma que "a injeção de dependência não permite desacoplar uma classe de suas classes dependentes, mas facilita o entendimento da implementação". Isso está incorreto: a injeção de dependência permite desacoplar a classe de suas dependências, pois a classe não precisa mais instanciá-las diretamente. O desacoplamento é um dos principais objetivos da técnica, e não algo que ela não faz.

Item III — ✅ Correto

A assertiva afirma que "uma das formas de implementação é pela criação de um pool de objetos, no qual objetos são retirados para serem injetados em uma classe". Isso está correto: o pool de objetos é uma das formas de implementar a injeção de dependência, onde objetos são pré-criados e reutilizados, sendo retirados do pool para serem injetados nas classes que precisam deles.

Conclusão: Corretos os itens I e III → portanto, a alternativa correta é a letra D.

NÃO CAIA NESSA!

A banca inverte o efeito da injeção de dependência na assertiva II: ela afirma que a técnica "não permite desacoplar", quando na verdade o desacoplamento é o seu principal benefício. Cuidado com essa inversão clássica — a injeção de dependência reduz o acoplamento, não o mantém.

PEGA ESSA DICA!

Para questões sobre injeção de dependência, lembre-se: o objetivo central é desacoplar e facilitar testes. Qualquer alternativa que diga o contrário está errada. Além disso, memorize as formas de implementação: construtor, setter, interface e pool de objetos.

Gabarito: letra D

Link permanente: /questoes/qq896808