Thiết lập Observer Pattern bằng Java Flow API (Reactive Streams)
Observer Pattern định nghĩa mối quan hệ một-nhiều giữa các đối tượng sao cho khi một đối tượng thay đổi trạng thái, tất cả các đối tượng phụ thuộc của nó đều được thông báo và cập nhật tự động.
Kiến trúc Observer Pattern:
Sử dụng Java Flow API (Java 9+)
Java đã deprecate lớp java.util.Observer cổ điển và khuyên dùng Flow API (nền tảng của Reactive Streams) để triển khai Observer Pattern hiệu quả, hỗ trợ bất đồng bộ và cơ chế Backpressure:
import java.util.concurrent.Flow.*;
import java.util.concurrent.SubmissionPublisher;
// Lớp phát sự kiện (Subject)
public class EventPublisher {
public static void main(String[] args) throws Exception {
SubmissionPublisher<String> publisher = new SubmissionPublisher<>();
// Đăng ký Subscriber (Observer)
publisher.subscribe(new Subscriber<String>() {
private Subscription subscription;
public void onSubscribe(Subscription subscription) {
this.subscription = subscription;
subscription.request(1); // Yêu cầu nhận 1 item
}
public void onNext(String item) {
System.out.println("Nhận thông báo: " + item);
subscription.request(1);
}
public void onError(Throwable throwable) { throwable.printStackTrace(); }
public void onComplete() { System.out.println("Hoàn thành."); }
});
publisher.submit("Bài viết mới trên whoimai.dev!");
Thread.sleep(100);
publisher.close();
}
}
Ý nghĩa: Đưa Observer Pattern truyền thống lên tầm cao mới với khả năng xử lý lượng dữ liệu lớn bất đồng bộ một cách an toàn.
Bình luận (0)
Đang tải bình luận...