Sto scrivendo software che deve essere abbastanza configurabile in natura. A questo punto, ciò significa che prima legge in un file di configurazione degli utenti e quindi crea gli oggetti necessari in base a tale configurazione.
Come risultato della creazione di oggetti basati sulla funzionalità desiderata degli utenti, mi sembra che Inversion of Control non sia realmente fattibile, il che rende impossibile l'iniezione della dipendenza.
Ad esempio, diciamo che devo dire a un programma di elaborare alcuni dati in un certo modo. Posso configurarlo quando si avvia per elaborare i dati con i processori A o B o C o anche A e C. Se devo costruire questi oggetti in base alla configurazione di un utente, non so come consentire l'iniezione delle dipendenze.
Si tratta di uno scenario in cui l'iniezione di dipendenza non è appropriata o ci sono modelli diversi (di cui non sono a conoscenza) che risolvono questo problema e consentono l'iniezione di dipendenza? Se ci sono altri schemi, quali sono?
Penso che la radice della mia domanda sia questa:
Se ho delle dipendenze A, B e C e un utente può configurare il software all'avvio per utilizzare qualsiasi numero di queste dipendenze (A, A, B o A, B, C o A, C o A, C, C, ecc.) Come posso fare un'iniezione di dipendenza quando gli oggetti non sono singleton e devo cambiare le dipendenze necessarie all'avvio?