Sto cercando un approccio al seguente problema:
Ho una libreria riutilizzabile. Contiene una classe controller, nel senso MVC. Diciamo che si chiama UserAdministrationController
, ed è per la modifica degli utenti. Questa classe richiede un oggetto che implementa IUserStorage
, per la memorizzazione dei suoi dati. La libreria non ha bisogno di conoscere i dettagli di come funziona questo oggetto.
Ora voglio scrivere un'applicazione che include la libreria. In esso, fornirò un'implementazione di IUserStorage
. Per creare un'istanza, dovrò passarle alcune dipendenze, come un oggetto di database, e altre cose di cui la mia applicazione conosce solo al runtime.
Ma come potrei quindi passare questo oggetto dalla mia applicazione alla libreria? Non sto creando un'istanza di UserAdministrationController
direttamente dalla mia applicazione; viene creato dalla libreria stessa.
Spero che questo abbia un senso. Sto cercando di mantenere la mia descrizione astratta e non specifica per un particolare framework o linguaggio.