Zdecydowanie nie zgadzam się, że zwiększa to sprzężenie.
Bez wstrzykiwania zależności masz ścisłe połączenie między podsystemem a konkretną implementacją zależności.
Po wstrzyknięciu zależności odłączyłeś podsystem od implementacji zależności.
Argumentowanie, że zwiększa sprzężenie między konsumentem a tym podsystemem, jest BARDZO wątpliwe, ponieważ sugeruje, że konsument jest teraz ściśle powiązany z zależnością wymaganą przez podsystem. Oznacza to tylko, że piszesz ściśle powiązany kod, który łączy klienta z zależnością. Idealnie WSZYSTKO twój kod jest oddzielony.
Wtrysk Konstruktora:
Rozdzielczość zależności jest obsługiwana przez pojemnik wstrzykiwania zależności lub fabrykę. Konsument może uzyskać konkretną implementację podsystemu z pojemnika wstrzykiwania zależności lub z fabryki.
Konsument nie musi wiedzieć, jak wygląda konstruktor podsystemu. Nie ma sprzężenia z zależnością od podsystemu.
Metoda wtrysku:
To samo co wstrzykiwanie konstruktora, tyle że teraz konsument musi uzyskać konkretny przykład zależności od kontenera lub fabryki (lub nawet wstrzyknąć metodę / konstruktor) i wstrzyknąć go do metody. Znowu konsument nie jest powiązany z konkretnym wdrożeniem zależności.
TL; DR
Najgorszym przypadkiem wstrzykiwania zależności w podsystemie jest przeniesienie sprzężenia na kod konsumenta. NIE MA OGÓLNEGO ZWIĘKSZENIA SPRZĘGŁA.
Najlepszym przypadkiem jest to, że wszystkie systemy są teraz luźno połączone, a wstrzykiwanie zależności jest kontrolowane przez pojemniki lub fabryki wstrzykiwania zależności.