Dopo la spiegazione di Martin Fowler sul sourcing di eventi , ho una classe di messaggi che assomiglia a qualcosa del tipo:
ShippingEvent
{
Process(Ship ship) {}
}
Tuttavia, nel mio caso, ho bisogno di parlare con un altro componente nel metodo Process
. Più specifico, ho bisogno di accedere a un repository per ottenere alcuni dati di base. Va bene aggiungere questo repository al metodo, ad esempio:
ShippingEvent
{
Process(Ship ship, IBasicDataRepository repo) {}
}
Potrei inserirlo anche nel costruttore del mio messaggio, ovviamente. Tuttavia, non posso passare i dati di base, perché il repository verrà chiamato più volte con parametri diversi, a seconda di cosa si trova nell'oggetto 'ship.
Quindi è corretto introdurre dipendenze esterne nella classe evento / messaggio o c'è un modo migliore?