Je refactore une classe et y ajoute une nouvelle dépendance. La classe prend actuellement ses dépendances existantes dans le constructeur. Donc, par souci de cohérence, j'ajoute le paramètre au constructeur.
Bien sûr, il y a quelques sous-classes et encore plus pour les tests unitaires, alors maintenant je joue au jeu de modifier tous les constructeurs pour qu'ils correspondent, et cela prend des années.
Cela me fait penser que l'utilisation de propriétés avec des setters est un meilleur moyen d'obtenir des dépendances. Je ne pense pas que les dépendances injectées devraient faire partie de l'interface de construction d'une instance d'une classe. Vous ajoutez une dépendance et maintenant tous vos utilisateurs (sous-classes et toute personne qui vous instancie directement) le savent soudainement. Cela ressemble à une rupture d'encapsulation.
Cela ne semble pas être le modèle avec le code existant ici, donc je cherche à découvrir quel est le consensus général, les avantages et les inconvénients des constructeurs par rapport aux propriétés. Est-ce qu'il est préférable d'utiliser des setters immobiliers?