2010-04-11 5 views
0

추상 메서드 (Execute())를 비롯한 몇 가지 메서드가 포함 된 추상 클래스가 있습니다.이 메서드는 자식 클래스에서 재정의됩니다. 이제 이벤트가 발생하고 (응용 프로그램의 어딘가에서), 이 이벤트에는 기본 클래스에 핸들러가 있습니다.이 핸들러에서 Execute를 호출합니다. 이제 chilobject의 메소드가 실행됩니다. 약간 혼란 스럽습니다. 어떻게 작동합니까?기본 클래스의 추상 메서드를 재정의합니다.

+0

실제로 메소드 전달의 세부 사항에 관심이 있습니까? 설명하는 메커니즘을 종종 "템플릿 메서드"- 패턴이라고합니다. 당신은 그것에 대한 많은 정보를 찾을 수 있어야합니다. – kloffy

답변

0

이 문제를 생각하는 한 가지 방법은 메시지 전달이라는 측면입니다. 인스턴스 메서드 안에 Execute()을 호출하면 "메시지"Execute현재 개체 (즉 this)으로 전송됩니다. 현재 개체는 자식 클래스의 인스턴스이므로 해당 메시지를 보내는 명령의 작성 위치에 관계없이 해당 클래스의 모든 인스턴스에 대해 정의 된대로 수신 된 메시지 "Execute()"을 처리합니다.

(귀하의 질문이 기술적으로 어떻게 구현 되었는가? 간단하게 대답하면 유감스럽게 생각합니다.) 일반적으로 객체의 클래스는 나머지 데이터와 함께 저장되며, 적절한 메서드, 즉 해당 객체에 대한 특정 메시지에 어떻게 대처할 것인가).

+1

내보기에서 메서드와 메시지의 근본적인 차이점은 개체의 메서드를 호출 할 때 해당 메서드의 클래스에 메서드가 전달된다는 것입니다. 메시지를 전달하면 "이해할 수없는 메시지"로 끝날 수 있습니다. –

관련 문제