Estou refatorando uma classe e adicionando uma nova dependência a ela. A classe está atualmente assumindo suas dependências existentes no construtor. Portanto, para maior consistência, adiciono o parâmetro ao construtor.
Claro, existem algumas subclasses e ainda mais para testes de unidade, então agora estou jogando alterando todos os construtores para combinar, e isso está levando idades.
Isso me faz pensar que usar propriedades com setters é a melhor maneira de obter dependências. Eu não acho que dependências injetadas devam fazer parte da interface para construir uma instância de uma classe. Você adiciona uma dependência e agora todos os seus usuários (subclasses e qualquer pessoa que instancia você diretamente) repentinamente sabem disso. Parece uma quebra de encapsulamento.
Esse não parece ser o padrão com o código existente aqui, então estou procurando descobrir qual é o consenso geral, prós e contras de construtores versus propriedades. O uso de configuradores de propriedades é melhor?