Non sono assolutamente d'accordo sul fatto che aumenti l'accoppiamento.
Senza l'iniezione di dipendenze si ha uno stretto accoppiamento tra un sottosistema e l'implementazione concreta della dipendenza.
Con l'iniezione di dipendenza hai disaccoppiato il sottosistema dall'implementazione della dipendenza.
Rendere l'argomento che aumenta l'accoppiamento tra il consumatore e questo sottosistema è MOLTO discutibile in quanto implica che il consumatore sia ora strettamente accoppiato alla dipendenza richiesta dal sottosistema. Tutto ciò significa che stai scrivendo codice strettamente accoppiato che accoppia il tuo consumatore alla dipendenza. Idealmente ALL il tuo codice è disaccoppiato.
Iniezione costruttore:
La risoluzione delle dipendenze è gestita da un contenitore per le dipendenze o una fabbrica. Il consumatore può ottenere un'implementazione concreta del sottosistema dal contenitore dell'iniezione dipendente o da una fabbrica.
Il consumatore non ha bisogno di sapere come appare il costruttore del sottosistema. Non esiste alcun accoppiamento con la dipendenza del sottosistema.
Iniezione metodo:
Come l'iniezione del costruttore, tranne per il fatto che ora il consumatore ha bisogno di ottenere un'istanza concreta della dipendenza dal contenitore o dalla fabbrica (o persino di iniettarlo metodo / costruttore) e iniettarlo nel metodo. Ancora una volta, il consumatore non è associato a un'implementazione concreta della dipendenza.
TL; DR
Il peggior caso per l'iniezione di dipendenza in un sottosistema è che l'accoppiamento è spostato sul codice del consumatore. NON C'È AUMENTO GLOBALE IN ACCOPPIAMENTO.
Il caso migliore è che ora tutti i sistemi sono accoppiati liberamente e l'iniezione di dipendenza è controllata tramite contenitori o fabbriche di iniezione dipendenti.