Questão de Engenharia de Software — Orientação a Objetos — VUNESP 2024
Engenharia de Software›Orientaçã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
Ainterfaces grandes de propósito geral devem ser substituídas por múltiplas interfaces específicas e pequenas.
Bmúltiplas interfaces específicas e pequenas devem ser substituídas por interfaces grandes de propósito geral.
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.
Dse B é subclasse de A, deve ser possível passar um objeto de B para qualquer método que espera um objeto de A.
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.