2010-02-28 3 views

답변

8

이것은 표준 interface based programming입니다.

프레임 워크는 IAsyncResult를 반환함으로써 프레임 워크 API에 대해 작성된 코드를 손상시키지 않고 나중에 내부 구현을 자유롭게 변경할 수 있습니다. 이것은 본질적으로 개발자로서 개발자에게 인터페이스 (IAsyncResult)가 충족되면 어떤 유형의 구현이 사용되는지 신경 쓰지 말아야한다는 것을 알려줍니다.

대신 실제 AsyncResult 클래스가 반환되면 다른 클래스로 변경하면 기존 코드가 손상됩니다.

또한 프레임 워크에서 AsyncResult 클래스의 적합 여부에 관계없이 여러 인터페이스에서 동일한 인터페이스 (IAsyncResult)를 사용할 수 있습니다. 필자는 개인적으로, 필자가 중요하게 여긴 정보를 저장하는 다른 클래스에 의해 뒷받침되는 IAsyncResult를 반환하는 자체 비동기 함수를 만들었 기 때문에이 점을 개인적으로 활용했습니다. 이것은 프레임 워크의 구현에 제약을 가하지 않고 내 자신의 코드가 프레임 워크처럼 작동하도록합니다.

+0

의미가 있습니다. 당신의 도움을위한 고맙습니다. – AspOnMyNet

+1

그러나 그 인터페이스에 다른 기능을 추가해야한다면 Heaven도 도와주세요. – Will

2

항상 AsyncResult를 반환하지는 않기 때문에. 대리자 대상이 다른 실행 컨텍스트에 존재할 수 있으므로 RealProxy 파생 클래스가 프록시를 구현할 수 있습니다. Remoting이 하나의 예입니다. 인터페이스 유형을 반환하면 투명하게됩니다.

관련 문제