🉑 Ở nhánh ez_to_understand sẽ làm ví dụ dễ hiểu về Observer:
-
Nhà xuất bản (publisher): Kênh youtube.
-
Người đăng ký (subscriber): User đăng ký kênh youtube.
Khi có video mới được kênh youtube(publisher) đăng lên thì người đăng ký kênh(subscriber) sẽ được thông báo rằng có video mới và thực hiện hành vi của mình.
Observer giúp consumer và producer có mối quan hệ n-n, ví dụ một người đăng ký có thể đăng ký nhiều kênh, sẽ phức tạp code hơn nhưng sẽ đáp ứng Open/Close Principle và maintain dễ dàng 💯
-
Swing sử dụng rất nhiều Observer Pattern, cũng như nhiều GUI framework.
-
Bạn cũng tìm thấy mẫu này ở nhiều nơi khác, bao gồm JavaBeans và RMI.