

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Considere o exemplo abaixo, relacionado ao sistema de tramitação processual em um tribunal:

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 é
implementar uma exceção no método realizarAudiencia() da classe AnalistaTI, lançando UnsupportedOperationException sempre que ele for chamado.
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.
manter a interface ServidorJudiciario como está, mas implementar o método realizarAudiencia() na classe AnalistaTI com um corpo vazio, garantindo compatibilidade com a interface.
tornar o método realizarAudiencia() um método default com implementação vazia na interface, permitindo que AnalistaTI não precise sobrescrevê-lo.
substituir a interface ServidorJudiciario por uma classe abstrata que implemente analisarProcesso() e realizarAudiencia() com comportamento genérico, permitindo que AnalistaTI herde dela.