Approaches to Dependency Inversion: DIC vs passando attraverso i parametri del costruttore

2

Nelle applicazioni precedenti su cui ho lavorato, ho avuto una singola classe factory che ha costruito la mia struttura a oggetti e tutte le dipendenze sono state passate a ogni classe attraverso i suoi parametri di costruzione.

Ora sto considerando di utilizzare un framework DIC come Pimple, nel qual caso sembra che tu abbia un contenitore di dipendenze globale a cui fare riferimento all'interno di un costruttore di classe per istanziare i suoi campi di dipendenza.

Mi mancano altri approcci fattibili per fare inversione di dipendenza? Quali sono i pro e i contro per ciascun approccio? Quando vorresti utilizzare un approccio sopra l'altro?

    
posta Nathan Arthur 26.09.2016 - 18:54
fonte

2 risposte

2

La documentazione di Pimple mostra come usarlo per iniettare dipendenze nei costruttori degli oggetti, che è sicuramente il modo di usarlo.

Sì, hai un contenitore di dipendenze globale e no, non lo chiami all'interno di un costruttore di classe.

Sostituisce la tua classe factory, ti chiedi di creare un oggetto di livello superiore e si occupa di creare tutte le dipendenze in modo ricorsivo secondo le regole che hai fornito.

    
risposta data 26.09.2016 - 20:05
fonte
1

Mi sembra che Brufolo sia piuttosto rigorosamente inferiore. Hai un accoppiamento molto più stretto con il contenitore DI e un sacco di chiavi stringa hardcoded ovunque che non possono essere modificate. L'approccio del parametro costruttore è molto superiore perché questo ha zero accoppiamento al contenitore. Ad esempio, immagina quanto sarebbe divertente scrivere un test usando una classe con un contenitore Pimple rispetto all'approccio del parametro costruttore.

    
risposta data 26.09.2016 - 19:22
fonte

Leggi altre domande sui tag