Tôi đang cấu trúc lại một lớp và thêm một phụ thuộc mới vào nó. Lớp hiện đang lấy các phụ thuộc hiện có của nó trong hàm tạo. Vì vậy, để thống nhất, tôi thêm tham số vào hàm tạo.
Tất nhiên, có một vài lớp con cộng với nhiều hơn cho các bài kiểm tra đơn vị, vì vậy bây giờ tôi đang chơi trò chơi để thay đổi tất cả các hàm tạo cho phù hợp, và nó mất nhiều thời gian.
Nó làm cho tôi nghĩ rằng sử dụng các thuộc tính với setters là một cách tốt hơn để có được sự phụ thuộc. Tôi không nghĩ rằng các phụ thuộc được chèn nên là một phần của giao diện để xây dựng một thể hiện của một lớp. Bạn thêm một phụ thuộc và bây giờ tất cả người dùng của bạn (các lớp con và bất kỳ ai bắt đầu trực tiếp với bạn) đột nhiên biết về nó. Điều đó cảm thấy như một sự phá vỡ của đóng gói.
Đây dường như không phải là mô hình với mã hiện có ở đây, vì vậy tôi đang tìm hiểu xem sự đồng thuận chung là gì, ưu và nhược điểm của các nhà xây dựng so với các thuộc tính. Là sử dụng tài sản setters tốt hơn?