Tôi đến với Java từ thế giới C#, nơi mà mẫu Observer được triển khai như một ngôn ngữ hạng nhất được xây dựng với từ khóa event
.Thay thế cho lớp Quan sát của Java?
Tôi thấy rằng Java có lớp Observable
kể từ những ngày đầu, nhưng rõ ràng là có vấn đề triển khai và dường như không được sử dụng rộng rãi. Cho đến nay tôi mới chỉ triển khai thực hiện mẫu Observer trong mã Java của mình nhưng tôi luôn không thể không nghĩ rằng phải có một giải pháp thay thế tốt hơn để luôn luôn bật mã mẫu soạn sẵn này. Có các lớp Listener trong Swing nhưng chúng dường như không phù hợp với mã không Swing.
Giải pháp được đề xuất cho vấn đề phổ biến này là gì? Thư viện của bên thứ ba là ok với tôi.
Tại sao các lớp người nghe không phù hợp với mã không phải Swing? – Jeffrey
Dường như tất cả các giao diện và lớp học của EventListener đều nằm trong các gói Swing và AWT. Vì chúng nằm trong một gói chịu trách nhiệm về giao diện người dùng, việc sử dụng chúng cho giao diện người dùng không phải là một mùi xấu đối với tôi. EventListeners có được sử dụng bên ngoài các ngữ cảnh giao diện người dùng này không? – HolySamosa
Ai sẽ ngăn cản bạn phát sinh các lớp người nghe của riêng bạn? 'EventListener' và' EventObject' đều nằm trong 'java.util', chúng không bị ràng buộc với AWT hoặc Swing theo bất kỳ cách nào. – Jeffrey