Câu trả lời hiện tại được đánh giá cao nhất cho một câu hỏi rất gần đây nói rằng
Các thùng chứa DI là một mẫu "phần mềm doanh nghiệp", được sử dụng khi biểu đồ đối tượng rất lớn và phức tạp. Tôi nghi ngờ rằng 95% ứng dụng không yêu cầu nó.
đó là điều mà tôi rất không đồng ý Có thể tôi đã hiểu sai thuật ngữ, nhưng đối với tôi, khung DI có nghĩa chỉ là "thứ gì đó nối các đối tượng của tôi lại với nhau". Tui bỏ lỡ điều gì vậy?
Tôi đang sử dụng Guice ngay cả đối với các dự án thực sự nhỏ (như 10 lớp) để đơn giản hóa chúng. Chắc chắn, đó là tệp JAR 400 kB, nhưng đây không phải là điều tôi quan tâm. Đối với một dự án nhỏ, tôi hầu như không cần bất kỳ cấu hình nào và "chi phí chung" duy nhất là thêm @Inject
chú thích.
Vì vậy, tôi thực sự tự hỏi, những gì phức tạp thêm làm khung DI gây ra?
Cập nhật địa chỉ câu trả lời
Trong một dự án lớp 82, tôi có
- 32
@Inject
chú thích - Chú thích 15
@Singleton
và 1@ProvidedBy
- 4 Nhà cung cấp (tất cả những gì tôi cần cũng không có DI vì họ là nhà máy của tôi)
- 1 Mô-đun chứa một dòng duy nhất
- XML 0 dòng !!!
Đó là tất cả. Chắc chắn, đó là dự án nhỏ, nhưng chính xác đây là quan điểm của tôi. Các công việc bổ sung là một vài từ chứ không phải là dòng .
Tôi chỉ sử dụng phương thức tiêm constructor để có được các đối tượng "dễ dàng" bất biến. Bất cứ khi nào một xuất hiện phụ thuộc mới, tôi thêm một lĩnh vực cuối cùng, chúng ta hãy Lombok của RequiredArgsConstructor chăm lo của việc kê khai, và để cho Guice nâng niu mang gọi nó đúng cách.