Saya refactoring kelas dan menambahkan ketergantungan baru ke sana. Kelas saat ini mengambil dependensi yang ada di konstruktor. Jadi untuk konsistensi, saya menambahkan parameter ke konstruktor.
Tentu saja, ada beberapa subclass plus bahkan lebih banyak untuk unit test, jadi sekarang saya memainkan permainan berkeliling mengubah semua konstruktor untuk mencocokkan, dan itu butuh waktu lama.
Itu membuat saya berpikir bahwa menggunakan properti dengan setter adalah cara yang lebih baik untuk mendapatkan dependensi. Saya tidak berpikir dependensi yang disuntikkan harus menjadi bagian dari antarmuka untuk membangun sebuah instance dari sebuah kelas. Anda menambahkan dependensi dan sekarang semua pengguna Anda (subclass dan siapa pun yang memberi Anda instantiasi secara langsung) tiba-tiba mengetahuinya. Rasanya seperti istirahat enkapsulasi.
Ini tampaknya bukan pola dengan kode yang ada di sini, jadi saya mencari tahu apa konsensus umum, pro dan kontra dari konstruktor versus properti. Apakah menggunakan setter properti lebih baik?