Inietti o crea una nuova istanza

3

Supponiamo di avere un'interfaccia in qualche lingua con due semplici metodi

interface IConverter{
   String toString(Object o)
   Object fromString(String s)
}

questa interfaccia è implementata da molte classi e c'è sempre solo l'implementazione di quei 2 metodi niente di più.

la mia domanda è, ha senso usare l'iniezione delle dipendenze e registrare le classi che implementano questa interfaccia in un contenitore IoC? o dovrei creare una nuova istanza in ogni classe che richiede questa dipendenza?

tieni presente che utilizzo già un contenitore IoC per altre cose in questa app

    
posta user1590636 20.01.2015 - 16:33
fonte

1 risposta

4

Dipende dalla situazione attuale e dalle dimensioni del progetto. La registrazione delle classi che implementano questa interfaccia nel contenitore IoC e quindi l'iniezione di specifiche implementazioni negli oggetti che dipendono dall'interfaccia potrebbero essere la strada da percorrere in alcuni casi, ma potrebbe essere eccessiva in altre.

Nei piccoli progetti, preferisco i vantaggi di vedere le dipendenze e passare gli oggetti dipendenti come parametri e non utilizzare il contenitore IoC. Nei progetti più grandi che utilizzano il contenitore IoC, è possibile delegare la responsabilità della gestione del ciclo di vita degli oggetti al contenitore ed evitare la necessità di scrivere manualmente il codice di inizializzazione degli oggetti in tutte le posizioni in cui è necessario uno specifico oggetto dipendente.

Più complesso è il tuo grafico delle dipendenze, più benefici otterrai da un contenitore IoC / DI.

    
risposta data 20.01.2015 - 18:34
fonte

Leggi altre domande sui tag