Executando verificação de segurança...
1

Violar ISP em Composição, é equivalente ao fazê-lo em Interfaces?

Como dita o princípio Solid 'Interface Segregation Principle':

Os clientes não devem ser forçados a depender de interfaces que não usam

Dito isso, a minha dúvida surgiu quando pensei na questão das Composições...

Imaginemos um Serviço chamado GetMonthlyProfitService, o qual calcula como regra de negócio, o lucro mensal de uma certa filial... Para sua operação, ele requer por composição (Instanciado por Injeção de Dependência) um objeto do tipo CashRepository, o qual possui como interface todos os métodos necessários para o acesso e alteração na persistência do tipo Cash (Como getById, getByPeriod, updateById, etc). Mas que porem, apenas usará o método getByPeriod, para realizar a soma mensal com os dados recebidos...

Por fim, eis a indagação: Não estaria a Composição do CashRepository ferindo o princípio Solid ISP, por forçar GetMonthlyProfitService a depender de métodos o qual não usa?

Gosto muito de arquitetura, e me intriga não conseguir dar uma resposta para uma dúvida que parece tão boba!

Carregando publicação patrocinada...
2

Ao meu ver estaria sim. Uma sugestão pra resolver isso é ter para cada método uma unica interface, onde o CashRepository implementaria todas essas interfaces, e o GetMonthlyProfitService somente teria a dependência da interface necessária.

1

Sim! É exatamente o que eu penso.
Mas ai no trampo agente generalizou em uma só interface, e eu gostaria de ver alguem apresentando um contra ponto... Mas se pá é isso, viola ISP da mesma forma
De todo modo, obrigado pela resposta!