Imagine o cenário onde seja necessária uma specification para determinar se um processo P deve ser executado. quando um registro existente (a ser consultado) tiver o mesmo código e ID. Obviamente essa regra pode ser uma única specification, mas vamos supor que cada um dos critérios já esteja definida em specifications distintas, uma para "Registro existente tem o mesmo código" (#1) e outra para "registro existente tem o mesmo ID" (#2). Assim, nossa especificação poderia ser construída como uma AndSpecificantion de #1 and #2.
Agora, vamos pensar em como as especificações #1 e #2 estariam construídas. Cada uma delas precisaria resolver ou receber resolvido o tal "registro existente". Por exemplo, este "registro existente" poderia ser adquirido a partir de um repositório. Poderia, ainda, haver uma especificação "Existe registro" (#3), a qual poderia inclusive ser usada como pré-requisito para as specifications #1 e #2.
A proposta é: será que haveria alguma forma de melhorar a fluência da API para permitir o compartilhamento do valor encontrado pela especificação #3 no repositorio, e utiliza-lo como "Registro Existente" nas Specifications #1 e #2, dentro do processo de resolução da especificação principal?
Imagine o cenário onde seja necessária uma specification para determinar se um processo
Pdeve ser executado. quando um registro existente (a ser consultado) tiver o mesmo código e ID. Obviamente essa regra pode ser uma única specification, mas vamos supor que cada um dos critérios já esteja definida em specifications distintas, uma para "Registro existente tem o mesmo código" (#1) e outra para "registro existente tem o mesmo ID" (#2). Assim, nossa especificação poderia ser construída como uma AndSpecificantion de #1 and #2.Agora, vamos pensar em como as especificações #1 e #2 estariam construídas. Cada uma delas precisaria resolver ou receber resolvido o tal "registro existente". Por exemplo, este "registro existente" poderia ser adquirido a partir de um repositório. Poderia, ainda, haver uma especificação "Existe registro" (#3), a qual poderia inclusive ser usada como pré-requisito para as specifications #1 e #2.
A proposta é: será que haveria alguma forma de melhorar a fluência da API para permitir o compartilhamento do valor encontrado pela especificação #3 no repositorio, e utiliza-lo como "Registro Existente" nas Specifications #1 e #2, dentro do processo de resolução da especificação principal?