Ho un servizio che deve effettuare una richiamata. Fondamentalmente, si tratta di un evento che dovrebbe essere gestito esattamente in un punto e che è troppo importante per essere facoltativo.
L'approccio ovvio sembra essere quello di iniettare un Action . Nel contesto dell'iniezione di dipendenza, è considerata una buona pratica (o accettabile) farlo?
Inoltre, desidero sentire perché (non) o quali alternative prendere in considerazione.
Un particolare problema che viene in mente è il seguente scenario:
-
Il costruttore di
Parentprende unIChild. -
Il costruttore di
Childprende unAction, il callback. -
Parentha il metodo per ricevere il callback. - Per creare un'istanza di
Child, abbiamo bisogno del metodoParent, e quindi dell'istanzaParent. Ma per crearlo, abbiamo prima bisogno dell'istanzaChild. Problema.
Una soluzione che posso pensare è iniettare un IChildFactory invece. Il costruttore di Parent può quindi utilizzare quella factory per creare l'istanza Child . A questo punto, esiste Parent , quindi può passare il suo metodo di callback alla produzione.
Questa soluzione sembra portare a termine il lavoro, ma sono curioso di alternative.