Pular para o conteúdo principal

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

Engenharia de SoftwareOrientação a Objetos
Código
gp044430
Banca
VUNESP
Órgão
UNESP
Ano
2026
Cargo
V - - Analista de Informática I - Área de Atuação: Desenvolvimento de Sistemas - Edital nº 350
No contexto da orientação a objetos, o Princípio da Segregação de Interface (Interface Segregation Principle) estabelece:
  1. Aobjetos de uma classe mãe possam substituir objetosde suas subclasses sem afetar a execução correta daaplicação.
  2. Bobjetos de subclasses possam substituir objetos daclasse mãe sem afetar a execução correta da aplicação.
  3. Cdeve-se preferir interfaces pequenas e específicasem vez de uma interface grande e de propósito geral.
  4. Dinterfaces grandes e genéricas devem ser usadasno lugar de interfaces pequenas e específicas, o quesimplifica a organização do código-fonte.
  5. Einterfaces gráficas de usuário (Graphical User Interfaces) devem ser implementadas com o mínimo de componentes visuais possíveis, facilitando a portabilidade do código-fonte.
Revelar gabarito e comentário

GabaritoC — deve-se preferir interfaces pequenas e específicas em vez de uma interface grande e de propósito geral.

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 Segregação de Interface (ISP)

Gabarito: letra C. O Interface Segregation Principle (ISP) estabelece que clientes não devem ser forçados a depender de interfaces que não usam, ou seja, deve-se preferir interfaces pequenas e específicas a uma interface grande e de propósito geral. Essa é a definição clássica do princípio, formulada por Robert C. Martin e parte do acrônimo SOLID.

O ISP é um dos cinco princípios SOLID de design orientado a objetos, criados para facilitar a compreensão, o desenvolvimento e a manutenção do código. A ideia central é evitar que uma classe seja obrigada a implementar métodos que não utiliza, simplesmente porque sua interface é grande demais. Quando uma interface é "gorda" (fat interface), ela agrega responsabilidades distintas, e qualquer classe que a implemente precisa fornecer implementações para todos os métodos, mesmo aqueles irrelevantes para seu propósito. Isso gera acoplamento desnecessário e viola o princípio da responsabilidade única em nível de interface.

Na prática, o ISP recomenda segregar (dividir) interfaces grandes em interfaces menores e mais coesas, cada uma com um propósito específico. Por exemplo, em vez de uma interface Funcionario com métodos calcularSalario(), baterPonto() e gerarRelatorio(), seria melhor ter interfaces separadas como Remuneravel, Frequencia e Relatoriable. Assim, uma classe Gerente que não bate ponto não precisa implementar baterPonto(). Isso reduz o acoplamento, aumenta a flexibilidade e evita dependências desnecessárias.

A pegadinha clássica da banca é confundir o ISP com o Princípio da Substituição de Liskov (LSP). Enquanto o LSP trata da relação entre classes base e derivadas (substituição transparente), o ISP trata da segregação de interfaces para não forçar dependências indesejadas. As alternativas A e B descrevem exatamente o LSP, e a alternativa D inverte completamente o sentido do ISP, defendendo interfaces grandes e genéricas — o oposto do que o princípio prega. A alternativa E é um distrator que brinca com a palavra "interface" no sentido de interface gráfica de usuário (GUI), que nada tem a ver com o princípio de design de software.

Guarde a fronteira: ISP = interfaces pequenas e específicas; LSP = substituição de objetos de subclasses por objetos da classe mãe. É exatamente nessa distinção que as alternativas se dividem.

Princípios SOLID
  • 1ISP (Segregação de Interface)
    • Interfaces pequenas e específicas
    • Clientes não dependem do que não usam
    • Evita interface "gorda"
  • 2LSP (Substituição de Liskov)
    • Subclasse substitui classe mãe
    • Sem afetar a corretude
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Descreve o Princípio da Substituição de Liskov (LSP), não o ISP. O LSP afirma que objetos de uma classe derivada devem poder substituir objetos da classe base sem afetar a corretude do programa. A alternativa inverte a relação: diz que objetos da classe mãe substituem objetos das subclasses, o que também não é a definição do LSP. O erro é duplo: atribui ao ISP um conceito de outro princípio e ainda o formula de maneira incorreta.

Alternativa B — ❌ Incorreta

Esta é a definição correta do Princípio da Substituição de Liskov (LSP): objetos de subclasses devem poder substituir objetos da classe mãe sem afetar a execução correta da aplicação. Porém, o enunciado pede o ISP, não o LSP. A banca troca os princípios para confundir o candidato que não domina a diferença entre eles.

Alternativa C — ✅ Correta ⟵ GABARITO

Esta é a definição exata do Interface Segregation Principle (ISP). O princípio prega que é melhor ter várias interfaces pequenas e específicas do que uma única interface grande e de propósito geral. Isso evita que clientes dependam de métodos que não utilizam, reduzindo o acoplamento e aumentando a coesão. A alternativa espelha perfeitamente o enunciado do princípio: "Clientes não devem ser forçados a depender de interfaces que eles não usam".

Alternativa D — ❌ Incorreta

Inverte completamente o sentido do ISP. O princípio não defende o uso de interfaces grandes e genéricas; pelo contrário, ele as rejeita em favor de interfaces pequenas e específicas. A alternativa apresenta o oposto exato do que o ISP estabelece, provavelmente para testar se o candidato conhece a direção correta do princípio.

Alternativa E — ❌ Incorreta

Brinca com a ambiguidade da palavra "interface". No contexto de orientação a objetos, "interface" refere-se a um contrato de métodos, não a uma interface gráfica de usuário (GUI). O ISP nada tem a ver com componentes visuais ou portabilidade de código. A alternativa é um distrator que explora o significado coloquial da palavra para confundir candidatos desatentos.

NÃO CAIA NESSA!

A banca adora trocar o ISP pelo LSP. Lembre-se: ISP = interfaces pequenas e específicas (segregação de interfaces); LSP = substituição de objetos de subclasses por objetos da classe mãe (substituição de Liskov). As alternativas A e B descrevem o LSP, não o ISP. Com treino, você enxerga essas trocas de longe 💪

Gabarito: letra C

Link permanente: /questoes/gp044430