Theo kinh nghiệm của riêng tôi:
Phái đoàn:
- PRO: chỉ sử dụng khi bạn có một đối tượng để thông báo;
- PRO: sử dụng giao thức rõ ràng, bạn có thể ghi rõ ý định của mình;
- CON: có thể là nguồn gốc của tai nạn và rò rỉ bộ nhớ nếu sử dụng sai (tip: không giữ lại các đại biểu, gán cho họ, và nhớ để deassign đại biểu khi/nếu chúng được phát hành)
tôi đã viết về các vấn đề quản lý bộ nhớ được tạo ra bởi phái đoàn trong bài viết này trên blog của tôi:
http://akosma.com/2009/01/28/10-iphone-memory-management-tips/
NSNotification:
- PRO: tốt hơn khi bạn có một số đối tượng để thông báo;
- PRO: rất linh hoạt, dẫn đến các lớp được kết nối lỏng lẻo;
- CON: thông báo được gửi đồng bộ (vì vậy hãy đảm bảo rằng trình xử lý thông báo riêng lẻ của bạn chỉ làm rất ít)
- CON: đôi khi khó lập tài liệu và duy trì. Hãy chắc chắn giải thích rõ ràng trong tài liệu tiêu đề ý nghĩa của từng thông báo và thời điểm gửi thông báo.
KVO:
- quan ngại tương tự về NSNotifications;
- CON: thậm chí còn mơ hồ hơn đối với tài liệu. Hãy chắc chắn thêm nhiều tài liệu tiêu đề hoặc mẹo kiến trúc hơn vào nhận xét của bạn để giải thích ai đang lắng nghe những gì. Cá nhân tôi sẽ không sử dụng KVO để tải dữ liệu hoặc phân tích nhiệm vụ.
Cá nhân, khi giao dịch với các ứng dụng hỗ trợ mạng nói đến dịch vụ web từ xa, tôi sử dụng lớp trình nạp dữ liệu đơn (bao gói ASIHTTPRequest và xử lý tất cả tuần tự hóa và deserialization).Bằng cách này, tôi có thể yêu cầu ủy nhiệm ứng dụng xử lý các lỗi kết nối của riêng mình (xuất hiện các cảnh báo và nếu được yêu cầu), và mỗi bộ điều khiển chỉ quan tâm đến các phản hồi mà nó muốn.
Tất nhiên, cách tiếp cận này phụ thuộc vào ứng dụng, nhưng kiến trúc chung này có thể là điểm bắt đầu cho mã của riêng bạn.
Nguồn
2010-01-03 16:21:55