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
Parent
prende unIChild
. -
Il costruttore di
Child
prende unAction
, il callback. -
Parent
ha 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.