Wpis z mikrobloga

@ddziaduch: nie wstrzykuj konkretów, tylko kontrakty.

Minusy: gdzieś te obiekty trzeba stworzyć, w prostych projektach tworzę klasy fabryki, w większych zdecydowanie polecam użycie kontenera wstrzykiwania zależności,

Jaki to minus? Minusem byłoby tworzenie tego samego obiektu w wielu klasach/metodach. Tworzenie go w kontenerze DI jest plusem.
@ddziaduch: Wygląda jakbyś testował swoją klasę razem z S3, a właściwie to samo S3, bo twoja klasa jest tylko proxy, które wybiera metodę. Niby przykład z realnego kodu, ale pokazuje sens DI w tak samo ograniczony sposób jak zwierzęta, pizze i samochody - niby zalety podane, ale jak spróbujesz zrozumieć jak to działa to dojdziesz, że problem został tylko przesunięty w inne miejsce.

Wybrałeś zły przykład, bo o ile DI powinieneś
@Jare_K: niby tak ale dla osób które nigdy nie używały DI i widza taki kod po raz pierwszy to znalezienie miejsca gdzie dany obiekt jest tworzony może być trudniejsze. To taki kiepski minus ale spotkałem się z taka opinia
@ddziaduch: a dlatego, że nie mam na myśli wyłącznie interfejsu, ale wszystko co może stanowić taki "kontrakt" - czyli interfejs, klasa abstrakcyjna, klasa zwykła, typy proste itd.

Generalnie to sygnatura metody (szczególnie używająca typowania) jest takim kontraktem/gwarantem. Jak się nie mylę, to normalne nazewnictwo. Ale może jest na to lepszy odpowiednik polski. Ja od lat pracuję w UK i na niektóre słowa jak np. trait nawet nie znam tłumaczenia polskiego (