2010-02-28 24 views

Trả lời

8

Đây là tiêu chuẩn interface based programming.

Bằng cách trả lại IAsyncResult, khuôn khổ là miễn phí để thay đổi triển khai nội bộ sau này mà không vi phạm mã được viết dựa trên API của khuôn khổ. Điều này, về bản chất, nói với chúng ta, với tư cách là các nhà phát triển, rằng chúng ta không nên quan tâm đến kiểu triển khai nào được sử dụng, miễn là giao diện (IAsyncResult) được đáp ứng.

Nếu, thay vào đó, lớp AsyncResult thực tế được trả lại, sau đó thay đổi sang một lớp khác sẽ phá vỡ mã hiện có.

Ngoài ra, điều này cho phép khung sử dụng cùng một giao diện (IAsyncResult) ở nhiều nơi, cho dù lớp AsyncResult có phù hợp hay không. Tôi đã tận dụng lợi thế của điều này, cá nhân, như tôi đã thực hiện chức năng không đồng bộ của riêng tôi mà trở về IAsyncResult được hỗ trợ bởi một lớp khác nhau, trong đó lưu trữ các thông tin đó là quan trọng với tôi. Điều này cho phép mã của riêng tôi hoạt động giống như khung công tác, mà không hạn chế tôi thực hiện khung công tác.

+0

Làm cho tinh thần. Thanx vì sự giúp đỡ của bạn – AspOnMyNet

+1

Thiên đường giúp chúng tôi nếu họ cần thêm chức năng khác vào giao diện đó. – Will

2

Vì không phải lúc nào cũng trả về AsyncResult. Các mục tiêu đại biểu có thể tồn tại trong một ngữ cảnh thực hiện khác, một lớp dẫn xuất RealProxy có thể thực hiện một proxy cho nó. Remoting sẽ là một ví dụ. Trả về một loại giao diện làm cho nó trong suốt.

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