Tôi đang viết thư viện java sẽ được ứng dụng hiện có sử dụng. Tôi đang sử dụng tiêm phụ thuộc để kiểm tra dễ dàng hơn và tôi quen thuộc với Spring nên tôi đã định sử dụng nó để quản lý việc tiêm phụ thuộc trong khi thử nghiệm. Các ứng dụng cuối cùng sẽ sử dụng thư viện không dựa trên Spring, tuy nhiên, cũng không sử dụng bất kỳ thùng chứa IoC/DI nào của bất kỳ loại hiện tại nào. Câu hỏi của tôi là, cách tiếp cận tiêm chích phụ thuộc tốt nhất nào nếu Spring hoặc Guice không được sử dụng? Tôi có nên xem xét một cái gì đó giống như một phương pháp nhà máy để nhanh chóng và dây các đối tượng? Các phụ thuộc là tất cả bên trong thư viện, do đó, dường như không thích hợp để ứng dụng khởi tạo từng phụ thuộc để tạo đối tượng chính.Sử dụng tiêm phụ thuộc trong thư viện
Trả lời
phương pháp tốt nhất để tiêm phụ thuộc nếu Spring hoặc Guice không được sử dụng là gì?
Nếu thư viện của bạn được viết bằng thành ngữ thân thiện với người dùng. Nó sẽ khá dễ sử dụng như một API java khốc liệt. Hãy nghĩ về kinh nghiệm quá khứ của bạn với mùa xuân. Có một số thư viện ở đó phù hợp hoàn hảo với mô hình lò xo nhưng được viết trước thời gian mùa xuân. Tôi không thấy không có gì xấu với một số new
, theo sau là một số setXX
, sau đó gọi tới phương thức thực tế hoạt động. Chỉ cần cẩn thận hơn, vì, trong số những thứ khác, khách hàng của bạn có thể quên gọi các phương thức init
của mùa xuân để gọi điện một cách đáng tin cậy.
Tôi có nên xem xét điều gì đó giống như phương pháp nhà máy để khởi tạo và nối dây các đối tượng không? Các phụ thuộc là tất cả bên trong thư viện, do đó, dường như không thích hợp để ứng dụng khởi tạo từng phụ thuộc để tạo đối tượng chính.
Hãy để ứng dụng khách quyết định điều đó. Bạn đang cung cấp một thư viện. Cho phép ứng dụng khách API gắn các đối tượng của riêng nó. Cung cấp một ví dụ. Sau đó, ví dụ tương tự có thể được sử dụng để tạo phương thức factory trên miền của khách hàng. Có lẽ ứng dụng khách có cách riêng của nó để cấu hình chính nó, và nó sẽ là mong muốn nếu API thư viện của bạn cung cấp đủ linh hoạt để tận dụng điều đó.
Hoặc có thể bạn có thể bao gồm guice. Giấy phép là Apache. Cũng giống như toàn bộ mảnh Java.
- 1. Sử dụng tiêm phụ thuộc cho Properties.Settings.Default?
- 2. Sử dụng chính xác phụ thuộc tiêm
- 3. Tiêm phụ thuộc trong ứng dụng Sinatra
- 4. Tiêm Khẩu phụ thuộc bằng cách sử dụng Injection Dependency
- 5. Tiêm phụ thuộc vào WPF bằng cách sử dụng Ninject
- 6. Khuôn khổ tiêm phụ thuộc .NET nào bạn sử dụng?
- 7. Khi nào bạn sử dụng tiêm phụ thuộc?
- 8. Tiêm phụ thuộc với PowerShell
- 9. Tiêm phụ thuộc lười biếng
- 10. Tiêm phụ thuộc vào MVC
- 11. giải quyết phụ thuộc vòng tròn với tiêm phụ thuộc
- 12. Tiêm phụ thuộc là gì?
- 13. Cách liên kết Boost trong thư viện tĩnh phụ thuộc
- 14. Thiết lập phụ thuộc thư viện Tomcat trong maven POM
- 15. Tiêm giá trị vào sự phụ thuộc tiêm
- 16. Container tiêm phụ thuộc? Nó làm gì?
- 17. Tiêm phụ thuộc vào guice cho đậu thực thể?
- 18. Tiêm phụ thuộc dựa trên điều kiện
- 19. Tiêm phụ thuộc vào lớp tĩnh
- 20. Sự tiêm phụ thuộc vào vòng lặp
- 21. Liên kết với thư viện năng động với phụ thuộc
- 22. Tiêm phụ thuộc với Spring/Junit/JPA
- 23. tĩnh (iPhone) thư viện, phân phối, và phụ thuộc
- 24. Tiêm phụ thuộc vào các thử nghiệm
- 25. Thư viện Javascript để vẽ sơ đồ phụ thuộc
- 26. Phụ thuộc transitive cho các thư viện tĩnh và SCON
- 27. Tiêm phụ thuộc autowired thất bại;
- 28. Mùa xuân - Tiêm phụ thuộc vào ServletContextListener
- 29. lựa chọn thay thế tiêm phụ thuộc
- 30. Khung tiêm phụ thuộc tương thích Mono