1
resposta

Dúvida sobre a Interface

Boa tarde!

Fiquei com uma pequena dúvida sobre a utilização da Interface que compôs o métodos 'validar' para as classes de Reajuste.

Na assinatura do método, você passou 2 atributos:

Funcionario funcionario; BigDecimal aumento;

Minha dúvida é sobre as classes que forem implementar essa interface e forem obrigadas a implementar o método 'validar'. Percebi que, por exemplo, a classe 'ValidacaoPeridiocidadeEntreReajustes' implementou o método mas ele não precisa de todos os atributos ali presentes. Ele não utiliza o atributo 'aumento' porque não faz parte do seu escopo, mesmo ele sendo obrigado a colocá-lo na assinatura.

Isso não é inviável caso a interface fique cada vez maior quando tiver cada vez mais atributos?

Digamos que em uma empresa o 'validar' tivesse que passar, por exemplo, 10 atributos. Mas nem todas as classes que forem implementar irão precisar utilizar todos os 10, mas mesmo assim serão obrigados a ter os mesmos na sua assinatura. É dessa forma mesmo que deveria acontecer?

Obrigado desde já.

1 resposta

Oi Leonardo,

Sim, nesse caso acabou gerando esse problema mesmo, pois nem toda classe que implementar a interface vai precisar do segundo parametro do método.

Inclusive isso seria uma violação do princípio Interface Segregation.

Nem sempre será possível seguir a risca todos os padrões e princípios em um projeto, sendo que em alguns casos podemos abrir mão de algum deles em prol de outros benefícios. Dewvemos então sempre analisar os pontos positivos e negativos de cada decisão em um projeto.

Bons estudos!