정확하게 파견되는 것이 무엇인지 혼란 스럽다. 특히 이중 급파에 관해서. 이 개념을 이해할 수있는 간단한 방법이 있습니까?자바로 파견되는 것
답변
Dispatch는 언어가 함수/메소드 정의를 호출하는 방식입니다.
자바에서는 클래스가 동일한 이름이지만 매개 변수 유형이 다른 여러 메서드가있을 수 있으며 언어는 메서드 호출이 실제 매개 변수와 가장 구체적인 형식을 가진 메서드에 전달되도록 지정합니다 일치 할 수 있습니다. 그것은 정적 파견입니다. 예를 들어
,void foo(String s) { ... }
void foo(Object o) { ... }
{ foo(""); } // statically dispatched to foo(String)
{ foo(new Object()); } // statically dispatched to foo(Object)
{ foo((Object) ""); } // statically dispatched to foo(Object)
자바는 가상 메소드 디스패치있다. 하위 클래스는 수퍼 클래스에서 선언 된 메서드를 재정의 할 수 있습니다. 따라서 런타임에 JVM은 메소드 호출을 런타임 유형 this
에 적합한 메소드 버전으로 보내야합니다. 예를 들어
,
class Base { void foo() { ... } }
class Derived extends Base { @Override void foo() { ... } }
{ new Derived().foo(); } // Dynamically dispatched to Derived.foo.
{
Base x = new Base();
x.foo(); // Dynamically dispatched to Base.foo.
x = new Derived(); // x's static type is still Base.
x.foo(); // Dynamically dispatched to Derived.foo.
}
번 디스패치은 디스패치 (또한 동적 불림) 정적 및 런타임의 조합이다.
감사합니다! 그것은 많은 도움이되었습니다. – thunderousNinja
이것은 정말 멋지게 레이아웃 된 답변입니다. Java가 이중 디스패치 언어는 아니지만 이중 디스패치가 현재 예제의 컨텍스트에서 어떻게 표시되는지 예제를 추가 할 수 있습니까? 나는 그것이'x.foo ("")'와 같은 것이 될 것이라고 추측하고 있지만 그것을 보는 것이 매우 도움이 될 것이라고 생각합니다. – Ogen
@Ogen, 자바에 대한 이중 디스패치입니다. 자바 스크립트를 사용할 수 있었습니까? –
- 1. 자바로 인코딩
- 2. 자바로 변환
- 3. 자바로 묶기
- 4. 자바로 이미지 파일 만들기
- 5. 자바로 볼륨 설정
- 6. . 자바로 - 직렬화 된 XML 작동합니까?
- 7. 큰 파일에 자바로 액세스
- 8. 자바로 디자인 패턴을 연습하십시오.
- 9. 자바로 된 간단한 그래픽
- 10. 자바로 인터넷을 통한 통신
- 11. 자바로 계산 하시겠습니까?
- 12. 디자인 : 자바로 이메일 보내기
- 13. 파이썬에서 자바로 자동 번역
- 14. 자바로 간략화 또는 골격화
- 15. 자바로 일출과 일몰 계산하기
- 16. 자바로 ldap 검색 필터
- 17. 가짜 URL을 자바로 생성하기
- 18. JNI에서 자바로 바이트 [] 반환
- 19. 비디오를 자바로 재생
- 20. 체스 게임을 자바로 디자인하기
- 21. 자바로 소리를 시작하고 멈추기
- 22. 오늘 자바로 만료일이
- 23. 파이썬에서 자바로 번역
- 24. 자바로 레일 포팅
- 25. 자바로 허프만 코딩
- 26. UML을 자바로 변환
- 27. 자바로 플래시 편집
- 28. 부동 소수점 반올림 (자바로)
- 29. 단위 테스트 케이스를 자바로 자동화하기
- 30. 자바로 이미지 그리기, 넷북에서 천천히지기
haha yea ... 내가 파견을 이해하면 나는 방문자 패턴을 더 잘 이해할 것이라고 생각했다. – thunderousNinja
아 맞다. 죄송합니다, 태그를 제거하겠습니다. 이것은 디자인 패턴과는 아무런 관련이 없습니다. – BalusC
"디스 패칭"이란 용어는 다소 과부하입니다. 또한 예약 된 작업을 프로세서에 적용하는 작업을 의미 할 수도 있습니다. 일부 실시간 스케줄러에서는 스케줄러와 디스패처 개념이 뚜렷한 아이디어와 소프트웨어 구성 요소입니다. – andersoj