Enunciado
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 é
Alternativas
- A)
remover o método realizaraudiencia() da interface ServidorJudiciario, criando interfaces separadas para responsabilidades distintas, pois nenhum cliente deve ser forçado a depender de métodos que não utiliza.
- B)
manter a interface ServidorJudiciario como está, mas implementar o método realizarAudiencia() na classe AnalistaTI com um corpo vazio, garantindo compatibilidade com a interface.
- C)
tornar o método realizaraudiencia() um método default com implementação vazia na interface, permitindo que AnalistaTI não precise sobrescrevê-lo.
- D)
substituir a interface ServidorJudiciario por uma classe abstrata que implemente analisarProcesso() e realizarAudiencia()com comportamento genérico, permitindo que AnalistaTI herde dela.
- E)
implementar uma exceção no método realizarAudiencia() da classe AnalistaTI, langando UnsupportedOperationException sempre que ele for chamado.
Gabarito e comentário
Resposta correta: A
O ISP recomenda interfaces específicas: uma classe não deve depender de métodos que não utiliza.