Tôi nghĩ một điểm chính của sự khác biệt là bối cảnh của vấn đề.
Mặc dù là một vấn đề có thể được giải quyết với một trong hai mô hình, những mối quan tâm thực sự là:
1: "Bao nhiêu thay đổi để mang lại bởi những sự kiện đang phụ thuộc vào bối cảnh chung?"
2: "Người nghe sẽ thay đổi thường xuyên như thế nào?" Các trường hợp cổ điển cho mô hình hòa giải tốt nhất minh họa điều này, nơi bạn có một giao diện người dùng phức tạp với rất nhiều thành phần và cập nhật trên mỗi thành phần có sự phụ thuộc lẫn nhau phức tạp về trạng thái của các thành phần tương tự khác.
Mặc dù bạn có thể giải quyết vấn đề này với mẫu pub/sub; trong đó các thành phần của bạn lắng nghe các sự kiện và chứa logic cần thiết để cập nhật, đối tượng ngữ cảnh (cùng với sự kiện) mang theo tất cả các thông tin cần thiết. Ở đây, lợi thế rõ ràng là sự đóng gói thích hợp của logic liên quan đến một thành phần bên trong chính nó. Nhược điểm là nếu các thành phần như vậy được cho là thay đổi thường xuyên thì bạn phải nhân rộng logic này đầy đủ trong mỗi thành phần mới mà bạn mang lại.
Để sử dụng một trung gian hòa giải là giới thiệu một lớp khác và trừu tượng hơn nữa từ các thành phần. Những thành phần này trở nên mỏng hơn vì chúng chỉ đối phó với biểu diễn (giao diện và cảm nhận UI) do đó, trở nên rất dễ thay đổi. Vấn đề duy nhất tôi có với phương pháp này là logic cập nhật bây giờ dường như tràn vào các thành phần khác và bất kỳ sự cập nhật nào của hệ thống sẽ yêu cầu một thay đổi thành phần và trình trung gian nếu hành vi thành phần cũng thay đổi.
Điều đó đối với tôi là tình huống khó xử/thương mại chính mà chúng tôi cần giải quyết. Xin vui lòng sửa tôi nếu tôi không có bất cứ điều gì một cách chính xác.