Questão nº 26

Questão de Conhecimentos Específicos · FCC TRF4 2025 (nº 26)

FCC2025Analista Judiciário - Área Apoio Especializado - Especialidade Análise de Sistemas de InformaçãoConhecimentos Específicos
Gabarito: Aver comentário ↓

Considere o exemplo abaixo, relacionado ao sistema de tramitação processual em um tribunal:

```
interface ServidorJudiciario {
void analisarProcesso();
void realizarAudiencia();
}

class AnalistaTI implements ServidorJudiciario { }
```

Segundo o Princípio da Segregação de Interface (ISP), pertencente ao conjunto de princípios SOLID, esse código apresenta um problema de design, já que a classe `AnalistaTI` é obrigada a implementar o método `realizarAudiencia()`, mesmo que esse comportamento não se aplique a sua função, que é técnica e não jurisdicional. Para corrigir essa violação ao ISP, a abordagem mais adequada é

Resposta comentada

Gabarito Alternativa A

O Princípio da Segregação de Interface (ISP) afirma que nenhuma classe deve ser forçada a implementar interfaces que não utiliza. Em outras palavras, interfaces devem ser pequenas e específicas, para que os clientes (classes que as implementam) não dependam de métodos que não lhes são relevantes.

  • (A) Correta: Remover o método realizarAudiencia() da interface ServidorJudiciario e criar interfaces mais específicas (como ServidorComFuncaoJurisdicional e ServidorComFuncaoTecnica) é a essência do ISP, garantindo que cada classe implemente apenas o que realmente precisa.
  • (B) Incorreta: Implementar um método com corpo vazio é uma "implementação nula" e viola o ISP, pois a classe AnalistaTI ainda é forçada a ter um método que não faz sentido para ela, podendo levar a comportamentos inesperados ou silenciosamente incorretos.
  • (C) Incorreta: Tornar o método realizarAudiencia() um método default com implementação vazia na interface é uma forma de contornar a obrigatoriedade, mas não resolve a violação do ISP. A interface ServidorJudiciario ainda estaria "gorda" e conteria um método que não se aplica a todos os seus implementadores, poluindo a interface.
  • (D) Incorreta: Substituir a interface por uma classe abstrata muda a natureza do relacionamento (de "pode fazer" para "é um tipo de") e não aborda a segregação de responsabilidades. A classe AnalistaTI ainda herdaria um método irrelevante, mantendo a violação do ISP.
  • (E) Incorreta: Lançar UnsupportedOperationException é uma forma explícita de indicar que a operação não é suportada, mas ainda significa que a classe AnalistaTI é forçada a implementar um contrato que não pode cumprir, violando o ISP e forçando os clientes a lidar com exceções desnecessárias.

Fonte: FCC TRF4 2025 Analista Judiciário - Área Apoio Especializado - Especialidade Análise de Sistemas de Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho