Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Sự khác nhau giữa Observer Pattern và Publisher/Subscriber Pattern
Chào mọi người, nay e có một thắc mắc nhỏ trong việc phân biệt cái Observer và Pub/Sub mong mọi người giúp đỡ.
Về cơ bản 2 cái này khá giống nhau, Pub/Sub như là một bản biến thể của Observer.
Trong Observer có 2 thành phần Subject(nơi đăng ký các Observer nhận thay đổi) và các Observer nhận thay đổi từ Subject
Trong Pub/Sub thì có một component trung gian nhận các topic của Publisher và gửi các topic tới Subscriber đăng ký topic đó.
Theo e hiểu thì ở Observer Pattern, nếu ko làm cách lưu history rồi cache dữ liệu ra thì những thằng Observer bắt buộc phải đăng ký với Subject để nhận được update(). Và thằng Subject phải biết được sự tồn tại của thằng Observer kia thì mới gửi update được
- Còn bên Pub/Sub thì thằng Pub cứ public lên cái message broker, chẳng quan tâm thằng nào sẽ nhận được rồi chỉ khi thằng Sub nào đăng ký với Message Broker thì Sub đó mới nhận được đúng ko ạ ? Mình nó nên hiểu quan hệ giữa MessBroke với Sub như Observer với Subject ko ạ ?
- Ở trong Observer Pattern, khi Observer ko đăng ký trong Subject thì nó sẽ bị loại bỏ, còn trong Pub/Sub thì kể cả Sub ko đăng ký nữa thì nó vẫn tồn tại trong Message Broker đúng ko ạ?
Cảm ơn m.n nhiều !