2010-05-17 34 views

Trả lời

11

Đó là về việc tách mối quan tâm.

Các nhà quan sát cho phép bạn tính toán mã không thực sự thuộc về các mô hình. Ví dụ, một mô hình User có thể có một cuộc gọi lại gửi email xác nhận đăng ký sau khi bản ghi người dùng được lưu, nhưng bạn thực sự không muốn mã này trong mô hình vì nó không liên quan trực tiếp đến mục đích của mô hình.

Các nhà quan sát cho phép bạn có sự tách biệt rõ ràng bởi vì bạn không có tất cả mã gọi lại đó trong các mô hình của mình. Các nhà quan sát phụ thuộc vào một mô hình (hoặc các mô hình), không phải là cách khác.

0

Đối với tôi, đó là điều tương tự. Nhưng tôi thích gọi lại thay vì Observer.

Người quan sát gọi lại nhưng trong mô hình riêng biệt.

Gọi lại nằm trong mô hình. Vì vậy, bạn thấy có callback và bạn có thể hack nó.

0

Điều tôi biết rất nhiều về việc giữ cho mô hình của bạn gọn gàng một cách hợp lý. Vì vậy, khi bạn tìm thấy mô hình của bạn nhận được ridiculously dài nó có thể là thời gian để refactor nó để sử dụng một người quan sát.

Từ POW kiến ​​trúc nghiêm ngặt (như được ghi trong câu trả lời của John) nó là khoảng separation of responsibilities nhưng nếu đó là một điều đơn giản, tôi thích gắn nó vào mô hình anyway.

Về mặt kỹ thuật, thực tế không có sự khác biệt.

Các vấn đề liên quan