Внедрение зависимостей через конструкторы или установщики свойств?

Я занимаюсь рефакторингом класса и добавляю в него новую зависимость. Класс в настоящее время принимает существующие зависимости в конструкторе. Поэтому для согласованности я добавляю параметр в конструктор.
Конечно, есть несколько подклассов плюс еще больше для юнит-тестов, так что теперь я играю в игру об изменении всех конструкторов, чтобы соответствовать, и это требует времени.
Это заставляет меня думать, что использование свойств с установщиками - лучший способ получения зависимостей. Я не думаю, что внедренные зависимости должны быть частью интерфейса для создания экземпляра класса. Вы добавляете зависимость, и теперь все ваши пользователи (подклассы и все, кто создает для вас экземпляр) внезапно узнают об этом. Это похоже на разрыв инкапсуляции.

Это не похоже на шаблон с существующим здесь кодом, поэтому я хочу выяснить, каково общее согласие, плюсы и минусы конструкторов в сравнении со свойствами. Лучше ли использовать установщики свойств?

Ответы на вопрос(14)

Ваш ответ на вопрос