Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

SOLID: possível forma de respeitar o ISP

O ISP (Inteface Segregation Principle) do Solid diz que "Uma classe não deve ser forçada a implementar interfaces e métodos que não irão utilizar", ou seja, devemos criar uma interface mais específica para colocarmos esse método que nem todas as classes que vão implementar a interface mais genérica precisam. Então por exemplo se tenho uma interface A com o método void fazerAlgo() e uma classe B que não precisa desse método, se B implementa A então teríamos que implementar esse método e não fazer nada. Seguindo o ISP poderíamos criar uma inteface C que extend a A e retirar o fazerAlgo da A. Sendo assim, B implementa A e não precisa sobrescrever fazerAlgo. Porém, no java poderíamos declarar esse método como default e o padrão seria não fazer nada de fato: default void fazerAlgo() {}. Dessa forma na classe B não precisaríamos implementar o método fazerAlgo(), mesmo implementado a interface A e, em teoria, estaríamos respeitando o ISP. É correto dizer isso ou isso ou estaríamos "roubando" fazendo isso?

2 respostas
solução!

Olá, Vitor!

Em teoria, isso poderia ser uma forma de respeitar o ISP.

No entanto, é importante considerar que a utilização do modificador default pode ser uma solução prática em alguns casos, mas pode levar a um acoplamento indesejado entre as classes que implementam a interface e a interface em si. Além disso, pode dificultar a compreensão do código, pois não fica claro quais métodos são realmente necessários para cada classe.

Portanto, é importante avaliar cada caso e considerar se a criação de interfaces mais específicas ou o uso do modificador default é a melhor abordagem para respeitar o ISP em seu projeto.

Espero ter ajudado e bons estudos!

Muito obrigado pela resposta!! Ajudou demais, show de bola! Abraço!!