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!