Refaktoryzuję klasę i dodaję do niej nową zależność. Klasa obecnie przyjmuje swoje istniejące zależności w konstruktorze. Aby zachować spójność, dodaję parametr do konstruktora.
Oczywiście jest kilka podklas plus jeszcze więcej dla testów jednostkowych, więc teraz gram w grę polegającą na zmienianiu wszystkich konstruktorów, aby pasowały, a to trwa wieki.
To sprawia, że myślę, że używanie właściwości z ustawiającymi jest lepszym sposobem uzyskiwania zależności. Nie sądzę, aby wstrzykiwane zależności były częścią interfejsu do konstruowania instancji klasy. Dodajesz zależność i teraz wszyscy twoi użytkownicy (podklasy i każdy, kto tworzy Twoją instancję bezpośrednio) nagle o tym wiedzą. To jest jak przerwa w hermetyzacji.
Wydaje się, że nie jest to wzorzec z istniejącym tu kodem, więc chcę dowiedzieć się, jaki jest ogólny konsensus, zalety i wady konstruktorów w porównaniu z właściwościami. Czy lepsze jest używanie metod ustawiających właściwości?