Trang chủ

June 30, 2013

Nguyên tắc sử dụng thông báo Notification

Khi sử dụng các thông báo (notification), hãy theo sát các nguyên tắc sau. Sử dụng thông báo mà vi phạm nguyên tắc này có thể dẫn đến kết quả khó lường trong ứng dụng của bạn.
  • Không nên phụ thuộc trình tự của thông báo được đưa ra.
Bạn có thể đếm trên hàm commandWillStart() được kích hoạt trước commandEnded(),beginInsert() được kích hoạt trước endInsert(). Phụ thuộc vào bất kỳ trình tự nào khác sẽ gây ra vấn đề cho ứng dụng nếu trình tự có thay đổi khi một thông báo mới được đưa ra hoặc thông báo cũ được sắp xếp lại.

  • Đừng phụ thuộc vào chuỗi các quả trình (gọi hàm) giữa các thông báo.
Nếu bạn không, ứng dụng của bạn có thể thất bại trong các phiên bản của tương lai.
Thay vì tin tưởng chuỗi, hãy dựa vào các thông báo để chỉ ra trạng thái của hệ thống. Ví dụ, khi nhận được thông báo erased(kTrue) trên đối tượng A, có nghĩa là đối tượng A bị xóa. Nếu bạn nhận được thông báo erased() trên A sau thông báo erased() trên B, có nghĩa là cả A và B đều đã bị xóa bỏ. Hệ thống sẽ không bảo đảm rằng B sẽ được xóa ngay sau A.
  • Không sử dụng bất kì hàm tương tác người dùng trong hàm trả về thông báo như acedCommand(), acedGetPoint(), acedGetKword(), hoặc bất kỳ hàm acedXXX() nào khác.
Giải thích tương tự áp dụng với các thông báo trên reactor CSDL, reactor chỉnh sửa và reactor giao dịch.

No comments:

Post a Comment