In uno dei prodotti con cui lavoro abbiamo una radice di aggregazione con un sacco di logica di dominio, e ora ho il requisito di rendere configurabile un piccolo elemento di comportamento.
Per fare un esempio, diciamo che ho un'entità e questa entità ha molte programmazioni, questi orari mi dicono se sono in orario o no e hanno modi diversi di farlo secondo il loro tipo (polimorfismo), uno di questi queste specifiche devono tenere conto di un parametro configurabile del database che mi dà il risultato.
Ora, tutte le possibilità che ho pensato non sembrano esatte
-
Non ha senso rimuovere la logica di dominio dal dominio solo a causa di questo requisito.
-
Inoltre, non è possibile che Entity acceda a un repository, almeno non considerato corretto da DDD
Ho pensato a molti altri modi per risolverlo, ma finisco sempre per dover istanziare manualmente il repository all'interno dell'entità o avere il mio livello applicazione per iniettare questi valori di configurazione per proprietà che interrompe il progetto poiché non c'è modo di forzare il valore da iniettare prima che un metodo possa usarlo per essere chiamato.
Quali alternative ho qui?