Pular para o conteúdo principal

Questão de Engenharia de Software — Orientação a Objetos — VUNESP 2023

Engenharia de SoftwareOrientação a Objetos
Código
vu080370
Banca
VUNESP
Órgão
UFABC
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Em desenvolvimento de software orientado a objetos, o princípio SOLID conhecido como Inversão de Dependência estabelece que
  1. Aapenas alterações potenciais na especificação do software devem ser capazes de afetar a especificação de uma classe.
  2. Bclasses devem ser abertas para extensões e fechadas para modificações.
  3. Cse deve separar funções de diferentes naturezas em interfaces diferentes, sem construir uma interface única de propósito geral.
  4. Duma implementação de função que recebe referências para objetos de determinada classe deve ser capaz de lidar com objetos de suas subclasses sem conhecê-las.
  5. Eclasses devem depender de interfaces ou classes abstratas, em vez de classes concretas.
Revelar gabarito e comentário

GabaritoE — classes devem depender de interfaces ou classes abstratas, em vez de classes concretas.

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 SOLID — Inversão de Dependência (DIP)

Gabarito: letra E. O princípio da Inversão de Dependência (DIP) estabelece que módulos de alto nível não devem depender de módulos de baixo nível; ambos devem depender de abstrações. Em termos práticos, classes devem depender de interfaces ou classes abstratas, evitando dependências diretas de classes concretas — exatamente o que a alternativa E descreve.

A banca cobra o conhecimento dos cinco princípios SOLID, sendo fundamental distinguir cada um. Vamos analisar cada alternativa:

Alternativa A — ❌ Incorreta

Afirma que apenas alterações na especificação poderiam afetar a especificação de uma classe. Isso remete ao princípio de ocultação da informação (ou encapsulamento), não ao DIP. O DIP trata de dependências entre abstrações, não de impacto de mudanças.

Alternativa B — ❌ Incorreta

Define o princípio Open/Closed (OCP): "aberto para extensão, fechado para modificação". Embora seja um princípio SOLID, não é o DIP.

Alternativa C — ❌ Incorreta

Descreve o princípio da Segregação de Interfaces (ISP): interfaces específicas são melhores que uma interface única e genérica. Também é SOLID, mas não é DIP.

Alternativa D — ❌ Incorreta

Trata do princípio de Substituição de Liskov (LSP): subtipos devem ser substituíveis por seus tipos base sem alterar a corretude do programa. Novamente, outro princípio SOLID.

Alternativa E — ✅ Correta ⟵ GABARITO

Exatamente a definição do Dependency Inversion Principle: classes devem depender de abstrações (interfaces ou classes abstratas) em vez de classes concretas. Isso reduz o acoplamento e facilita a manutenção.

PEGA ESSA DICA!

Para memorizar os cinco princípios SOLID, associe cada sigla: S (Single Responsibility), O (Open/Closed), L (Liskov Substitution), I (Interface Segregation), D (Dependency Inversion). Na prática, decore as frases-chave de cada um e resolva questões de classificação.

Gabarito: letra E.

Link permanente: /questoes/vu080370