Questão de Engenharia de Software — Orientação a Objetos — CESPE / CEBRASPE 2025
Engenharia de Software›Orientaçã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
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.
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.
Cpermitir que módulos de alto nível dependam diretamente de módulos de baixo nível para garantir execução eficiente.
Destabelecer dependência direta entre classes concretas para facilitar a implementação e evitar abstrações desnecessárias.
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.