Pular para o conteúdo principal

Questão de Engenharia de Software — Orientação a Objetos — CESPE / CEBRASPE 2025

Engenharia de SoftwareOrientação a Objetos
Código
ce195217
Banca
CESPE / CEBRASPE
Órgão
BANRISUL
Ano
2025
Nível
Superior
Cargo
Técnico em Tecnologia da Informação II - Desenvolvimento de Software
O princípio de inversão de dependência (dependency inversion principle) visa tornar o código mais flexível e desacoplado e favorecer sua manutenção e testabilidade. Uma abordagem alinhada a esse princípio consiste em
  1. Aevitar o uso de abstrações na comunicação entre módulos para garantir que cada implementação se conecte diretamente com outras classes concretas.
  2. Bestabelecer um modelo em que módulos de alto nível interajam de maneira indireta com módulos de baixo nível de forma a garantir que a comunicação entre eles ocorra por meio de abstrações.
  3. Cpermitir que módulos de alto nível dependam diretamente de módulos de baixo nível para garantir execução eficiente.
  4. Destabelecer dependência direta entre classes concretas para facilitar a implementação e evitar abstrações desnecessárias.
  5. Ecriar dependências explícitas entre os componentes do sistema para eliminar a necessidade de interfaces.
Revelar gabarito e comentário

GabaritoB — estabelecer um modelo em que módulos de alto nível interajam de maneira indireta com módulos de baixo nível de forma a garantir que a comunicação entre eles ocorra por meio de abstrações.

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

Princípio da Inversão de Dependência (DIP)

Gabarito: alternativa B. O Dependency Inversion Principle (DIP), um dos cinco princípios SOLID, preconiza que módulos de alto nível não devem depender diretamente de módulos de baixo nível; ambos devem depender de abstrações. Isso torna o código mais flexível, desacoplado e testável. A alternativa B descreve exatamente essa ideia: comunicação indireta por meio de abstrações.

Princípio

Descrição

Relação com DIP

Exemplo de Aplicação

DIP (Dependency Inversion Principle)

Módulos de alto nível não devem depender de módulos de baixo nível; ambos devem depender de abstrações

Essência do princípio

Comunicação indireta via interfaces/classes abstratas

Alternativa A

Evitar abstrações e conectar classes concretas diretamente

Viola o DIP

Conexão direta entre classes concretas

Alternativa B (✅)

Módulos de alto nível interagem indiretamente com módulos de baixo nível via abstrações

Alinhado ao DIP

Uso de interfaces para comunicação

Alternativa C

Dependência direta de módulos de alto nível sobre os de baixo nível

Viola o DIP

Acoplamento direto entre módulos

Alternativa D

Dependência direta entre classes concretas, evitando abstrações

Viola o DIP

Implementação sem interfaces

Alternativa E

Eliminar interfaces e criar dependências explícitas

Viola o DIP

Código sem abstrações

Alternativa A — ❌ Incorreta

Afirma que se deve evitar abstrações e conectar classes concretas diretamente. Isso viola frontalmente o DIP, que exige o uso de abstrações.

Alternativa B — ✅ Correta ⟵ GABARITO

Estabelece que módulos de alto nível interagem indiretamente com módulos de baixo nível, com a comunicação ocorrendo por abstrações. Essa é a essência do DIP.

Alternativa C — ❌ Incorreta

Defende dependência direta de módulos de alto nível sobre os de baixo nível. O DIP exatamente proíbe essa dependência direta, visando reduzir acoplamento.

Alternativa D — ❌ Incorreta

Propõe dependência direta entre classes concretas e evitar abstrações. Essa abordagem é oposta ao DIP, que incentiva abstrações.

Alternativa E — ❌ Incorreta

Sugere eliminar interfaces (abstrações) e criar dependências explícitas. O DIP, ao contrário, utiliza interfaces para inverter as dependências.

PEGA ESSA DICA!

Lembre-se do acrônimo SOLID: D de Dependency Inversion — “Dependa de abstrações, não de implementações concretas”. Essa é a chave para acertar questões sobre o DIP.

Link permanente: /questoes/ce195217