Injeção de dependência através de construtores ou setters de propriedade?

Estou refatorando uma classe e adicionando uma nova dependência a ela. A classe está atualmente usando suas dependências existentes no construtor. Então, para consistência, adiciono o parâmetro ao construtor.
Claro, existem algumas subclasses e mais ainda para testes de unidade, então agora eu estou jogando o jogo de alterar todos os construtores para combinar, e isso está demorando.
Isso me faz pensar que usar propriedades com setters é uma maneira melhor de obter dependências. Eu não acho que as 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 alguém instanciando você diretamente) de repente sabem disso. Isso parece uma quebra de encapsulamento.

Este 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. Está usando melhor os setters de propriedade?

questionAnswers(14)

yourAnswerToTheQuestion