Tôi hoàn toàn không đồng ý rằng nó làm tăng khớp nối.
Không có sự phụ thuộc tiêm, bạn có sự kết hợp chặt chẽ giữa một hệ thống phụ và việc thực hiện cụ thể của sự phụ thuộc.
Với tiêm phụ thuộc, bạn đã tách hệ thống phụ khỏi việc thực hiện phụ thuộc.
Việc đưa ra lập luận rằng nó làm tăng sự ghép nối giữa người tiêu dùng và hệ thống phụ này là RẤT đáng nghi ngờ vì nó ngụ ý rằng người tiêu dùng hiện đang liên kết chặt chẽ với sự phụ thuộc theo yêu cầu của hệ thống phụ. Tất cả điều đó có nghĩa là bạn đang viết mã kết hợp chặt chẽ mà kết hợp người tiêu dùng của bạn với sự phụ thuộc. Lý tưởng nhất là TẤT CẢ mã của bạn được tách rời.
Xây dựng tiêm:
Độ phân giải phụ thuộc được xử lý bởi một thùng chứa phụ thuộc hoặc nhà máy. Người tiêu dùng có thể có được một triển khai cụ thể của hệ thống phụ từ thùng chứa phụ thuộc hoặc nhà máy.
Người tiêu dùng không cần biết hàm tạo của hệ thống phụ trông như thế nào. Không có khớp nối với phụ thuộc hệ thống phụ.
Phương pháp tiêm:
Giống như tiêm constructor ngoại trừ bây giờ người tiêu dùng cần lấy một ví dụ cụ thể về sự phụ thuộc từ container hoặc nhà máy (hoặc thậm chí có phương thức / constructor được tiêm) và tiêm vào phương thức. Một lần nữa, người tiêu dùng không được kết hợp với việc thực hiện cụ thể của sự phụ thuộc.
TL; DR
Trường hợp tồi tệ nhất đối với việc tiêm phụ thuộc trong một hệ thống phụ là khớp nối được chuyển sang mã tiêu dùng. KHÔNG CÓ TĂNG CƯỜNG TUYỆT VỜI TRONG HỢP TÁC.
Trường hợp tốt nhất là tất cả các hệ thống hiện được ghép lỏng lẻo và tiêm phụ thuộc được kiểm soát thông qua các thùng chứa phụ thuộc hoặc nhà máy.