Tôi luôn biết Singletons là "xấu", nhưng chỉ bây giờ tôi đã thực hiện việc chuyển sang Java từ C++, tôi đã quyết định tìm cách xung quanh chúng. Từ một chút đọc, tôi đã thấy rằng một trong hai nhà máy hoặc Dependency Injection có thể có thể làm công việc, nhưng tôi muốn một số xác nhận về điều này.Sử dụng Dependency Injection như một sự thay thế cho Singletons
Ví dụ, tôi chuẩn bị viết một tập phim AnimationCache để lưu trữ Map<String, Animation>
. Các lớp khác nhau sẽ có thể có quyền truy cập vào lớp này (về cơ bản) ở bất cứ đâu để chúng có thể tải Ảnh động một cách dễ dàng và hiệu quả. Một ví dụ rất ngắn về những gì mã tương đương sẽ giống như sử dụng DI sẽ là tuyệt vời.
Ngoài ra, Guice là một khuôn khổ tốt cho DI với các ứng dụng không phải web? Tôi đã sử dụng Spring để phát triển web, nhưng tôi không chắc chắn sẽ làm việc cho trò chơi.
Spring DI không chỉ dành cho các ứng dụng web. Cập nhật – gtiwari333
: Bạn cũng có thể xem xét [CDI 2.0 - Ngữ cảnh & Sự phụ thuộc cho Java] (http://cdi-spec.org). Được chuẩn hóa trong [JSR 365] (https://jcp.org/en/jsr/detail?id=365) kể từ 2017-04. Được thiết kế cho * cả hai * Java SE và Java EE. –
Câu hỏi này và câu trả lời của câu hỏi này có thể liên quan đến người đọc trong tương lai: https://stackoverflow.com/questions/130794/what-is-dependency-injection?rq=1 – Cypher