Pular para o conteúdo principal

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

Engenharia de SoftwareOrientação a Objetos
Código
vu085621
Banca
VUNESP
Órgão
Prefeitura de São Bernardo do Campo - SP
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação e Comunicações
O princípio SOLID conhecido como Substituição de Liskov estabelece que
  1. Ainterfaces grandes de propósito geral devem ser substituídas por múltiplas interfaces específicas e pequenas.
  2. Bmúltiplas interfaces específicas e pequenas devem ser substituídas por interfaces grandes de propósito geral.
  3. Cmódulos do código-fonte abertos para modificação devem ser substituídos por módulos fechados para modificação, mas abertos para extensão.
  4. Dse B é subclasse de A, deve ser possível passar um objeto de B para qualquer método que espera um objeto de A.
  5. Eprojetos de software baseados no conceito de “monolito” devem ser substituídos por novas implementações baseadas na arquitetura de microsserviços.
Revelar gabarito e comentário

GabaritoD — se B é subclasse de A, deve ser possível passar um objeto de B para qualquer método que espera um objeto de A.

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 Substituição de Liskov (LSP)

Gabarito: letra D. O Princípio da Substituição de Liskov (LSP) estabelece que, se uma classe B é subclasse de A, então objetos de B devem poder substituir objetos de A sem alterar o comportamento esperado do programa. A alternativa D capta exatamente essa ideia: "se B é subclasse de A, deve ser possível passar um objeto de B para qualquer método que espera um objeto de A".

A banca testa o conhecimento da definição do LSP em meio a definições de outros princípios SOLID e conceitos alheios. As alternativas A, B, C e E descrevem, respectivamente, o Princípio da Segregação de Interface (ISP) – em sua versão correta e invertida –, o Princípio do Aberto/Fechado (OCP) e uma abordagem de microsserviços que não faz parte do SOLID.

Alternativa A — ❌ Incorreta

Corresponde ao Princípio da Segregação de Interface (ISP): interfaces grandes de propósito geral devem ser substituídas por múltiplas interfaces específicas e pequenas. Não é a definição de LSP.

Alternativa B — ❌ Incorreta

Afirma o oposto do ISP: múltiplas interfaces específicas sendo substituídas por uma interface grande. Além de incorreta em si, não tem relação com LSP.

Alternativa C — ❌ Incorreta

Descreve o Princípio do Aberto/Fechado (OCP): módulos devem estar abertos para extensão, mas fechados para modificação. Não é LSP.

Alternativa D — ✅ Correta ⟵ GABARITO

Reproduz a definição clássica do LSP: objetos de uma subclasse devem ser substituíveis por objetos da superclasse sem quebrar o programa. Conforme o contexto, "uma classe derivada deve ser substituível por sua classe base" e "funções que recebem ponteiros ou referências de classes base devem conseguir operar com objetos de classes derivadas de forma transparente" (Material de Apoio e).

Alternativa E — ❌ Incorreta

Refere-se à substituição de arquiteturas monolíticas por microsserviços, que não é um princípio SOLID.

NÃO CAIA NESSA!

A banca mistura definições de outros princípios SOLID (ISP, OCP) e tópicos não relacionados para confundir. É essencial memorizar a definição exata de cada um dos cinco princípios: SRP (responsabilidade única), OCP (aberto/fechado), LSP (substituição de Liskov), ISP (segregação de interfaces) e DIP (inversão de dependência). Treine identificá-los por suas descrições características.

Gabarito: letra D

Link permanente: /questoes/vu085621