Pular para o conteúdo principal

Questão de Engenharia de Software — Diagrama de Objetos — FUNDATEC 2023

Engenharia de SoftwareDiagrama de Objetos
Código
qq896849
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Programação de Sistemas na Tecnologia Microsoft
Qual é a diferença entre inversão de controle e injeção de dependências?
  1. AA inversão de controle é um princípio e a injeção de dependências é uma técnica.
  2. BA inversão de controle é uma técnica e a injeção de dependências é um princípio.
  3. CNão há diferença, os termos são sinônimos.
  4. DA inversão de controle é um conceito antigo e a injeção de dependências é um conceito moderno.
  5. EA injeção de dependências é uma técnica específica da linguagem Java.
Revelar gabarito e comentário

GabaritoA — A inversão de controle é um princípio e a injeção de dependências é uma técnica.

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”.

Inversão de Controle e Injeção de Dependências

Gabarito: letra A. A inversão de controle (IoC) é um princípio de design no qual o fluxo de controle de um programa é invertido: em vez de o código controlar a execução, um framework ou contêiner assume o controle. A injeção de dependências (DI) é uma técnica específica para implementar IoC, na qual as dependências de um objeto são fornecidas externamente (injetadas) em vez de criadas pelo próprio objeto. Portanto, IoC é o princípio geral e DI é uma das formas de aplicá-lo.

Aspecto

Inversão de Controle (IoC)

Injeção de Dependências (DI)

Natureza

Princípio de design

Técnica de implementação

Função

Inverte o fluxo de controle do programa para um framework/contêiner

Fornece dependências externamente ao objeto

Relação

É o conceito geral

É uma forma específica de aplicar IoC

Exemplos de aplicação

Service Locator, eventos, template method

Injeção por construtor, setter ou interface

Inversão de controle (IoC)
  • 1Princípio de design
    • Fluxo invertido
    • Framework/contêiner controla
  • 2Implementações
    • Injeção de dependências (DI)
    • Service Locator
    • Eventos
    • Template Method
  • 3Injeção de dependências (DI)
    • Técnica específica
      • Dependências fornecidas externamente
      • Construtor
      • Setter
      • Interface
    • Não exclusiva do Java
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

Exatamente como descrito: IoC é princípio, DI é técnica. A DI é uma concretização do princípio de IoC, permitindo que as dependências sejam passadas ao objeto (construtor, setter ou interface).

Alternativa B — ❌ Incorreta

Inverte os papéis. DI não é princípio; ela é uma técnica. IoC não é técnica; é o princípio mais amplo.

Alternativa C — ❌ Incorreta

Afirma que são sinônimos, o que é falso. IoC é um princípio que pode ser implementado de várias maneiras (por exemplo, Service Locator, eventos, template method), e DI é uma dessas implementações.

Alternativa D — ❌ Incorreta

Não há base temporal que diferencie os conceitos como antigo vs moderno. Ambos são conceitos consolidados há décadas, sendo DI uma especialização de IoC.

Alternativa E — ❌ Incorreta

DI não é exclusiva do Java. É um padrão utilizado em diversas linguagens (C#, Python, JavaScript, etc.) com frameworks como Spring, Guice, Dagger, etc.

Gabarito: letra A.

Link permanente: /questoes/qq896849