Per prima cosa supponiamo che tutti siano d'accordo sul fatto che non c'è nulla di male nell'iniettare qualche oggetto valore in un oggetto iniettabile come un servizio. In effetti, un servizio può ricevere un altro servizio iniettato, ma potrebbe anche ottenere alcune informazioni di configurazione. Informazioni sulla configurazione che verrebbero rappresentate come oggetto valore.
Ora parliamo di usare il framework DI, direttamente sul valore dell'oggetto. (Non lo dico intenzionalmente, applichiamo un'iniezione di dipendenza su oggetti valore, perché vedo i critici venire su cosa è una dipendenza e così via ...)
Ecco cosa può essere rosso ovunque:
Using DI for Value object is wrong or useless. They are newable. They do not have real dependency.
In generale non sarei d'accordo con l'idea di "newable" .
I think it is a good practice to use Factories anyway. It leaves you some control over how exactly the object is created and what strategy, you may use behind and etc...
La fabbrica stessa potrebbe essere configurata ed ecc ... Si potrebbe anche pensare di modificare l'implementazione istanziata per l'interfaccia data di un oggetto valore, in base al vincolo del sistema operativo oa qualsiasi condizione si possa pensare ...
Supponiamo ora che siamo tutti d'accordo nell'usare le fabbriche per la creazione di oggetti di valore. Partendo da questo, vorrei sviluppare il seguente punto: È possibile utilizzare un DI come semplice strumento di produzione, quando si tratta di oggetti valore?
Why I'm asking this:
Because i want to use factories as exposed above. I don't want to scattered around my value object creation. (Is that legitimate ?)
Questo significa che userò sicuramente l'iniezione assistita per creare il mio oggetto valore (L'altro modo sarebbe usare le fabbriche statiche nel mio codice) .
Essenzialmente utilizzando un DI come contenitore di fabbrica per l'oggetto valore, significa che è probabile che tu passi le fabbriche come parametro dei tuoi servizi, per consentire loro di creare quegli oggetti valore.
Quale usi? perché ? Perché dovresti essere contro l'uno o l'altro?
Preferisci usare un statico (Singleton / anti-pattern?) nel mezzo del tuo codice di servizio, o preferisci iniettare la tua fabbrica, meteorologicamente tramite un DI o una fabbrica che non è statica?