GWT의 Has****Handlers
인터페이스의 의미를 이해할 수 없습니다. 클래스가 HasClickHandlers
(addClickHandler
) 및 ClickHandler
(onClick
) 인터페이스를 구현하는 경우 차이점은 무엇입니까? 핸들러가 의미하는 바는 무엇입니까
답변
HasClickHandlers
- 클릭 할 수있는 것 (예 : 버튼
ClickHandler
- 클릭
HasClickHandlers
개체를 처리하는 코드는 사용자가 클릭 할 때 반응 할 수있는 버튼과 같은 위젯,이다. 그러나 버튼 자체는 사용자가 클릭 할 때 어떤 일이 발생해야하는지 알지 못합니다. 개발자는 ClickHandler
개체를 만들 수 있습니다.이 개체는 사용자가 해당 단추를 클릭 할 때 발생해야하는 동작을 구현합니다. 버튼에 ClickHandler
이 지정되어 사용자의 클릭에 반응 할 수 있습니다. 즉, 버튼에 클릭 핸들러가있을 수 있습니다 (HasClickHandlers
). 발표자에서보기 디커플링
HasClickHandlers getSaveButton();
대신 단순히
Button getSaveButton();
구글 지지자 : GWT 응용 프로그램과 같은 방법 서명을보기 인터페이스를 정의해야한다고 않는 이유
하나는 요청할 수 있습니다. 발표자는 대개 버튼의 모든 기능을 거의 신경 쓰지 않습니다. 일반적으로 버튼은 클릭 핸들러를 사용하여 사용할 수있는 것입니다. HasClickHandler
과 같은 인터페이스는 매우 적은 메소드를 가지고 있으며 모의하기가 매우 쉽습니다. 그러나 실제 버튼을 사용하면 테스트를위한 버튼을 만들기 위해 전체 UI 프레임 워크 중 일부 또는 일부를 초기화하고 전제 조건 클래스를 인스턴스화해야 할 수도 있습니다.
대신 Button
를 인터페이스 창 HasClickHandler
를 구비함으로써, 표현의 단위 테스트 코드는 단순히 HasClickHandler
같은 인터페이스를 조롱하여 UI 프레임 워크의 복잡성을 완전히 분리 할 수있다. 즉, 간단한 테스트 스 캐 폴딩 및 매우 빠른 단위 테스트 (UI 프레임 워크를 초기화/상호 작용하는 오버 헤드가 없으므로)를 의미합니다.
http://googletesting.blogspot.com/2009/08/tott-testing-gwt-without-gwttest.html
편집
영업 이익은 묻는다 :
확인, 예를 ABC 클래스가 Hasclickhandlers 및 Clickhandler를 구현하고 onClick 및 addClickHandler (HandlerRegistration을 반환 함)를 구현하는 경우 이는 1) click 이벤트에서 onClick 메서드를 통해 작동하고 2) 다른 클래스가 (ClickHandler 및 ABC 클래스의 addClickHandler를 사용하여 이벤트를 등록) 클릭이 방금 발생 했습니까? 권리?
ABC
과 같은 클래스는 HasClickHandlers
을 구현하지 않습니다. 버튼과 같은 GWT 위젯 만 HasClickHandlers
을 구현합니다. Google은 버튼과 같은 일부 위젯에 변수 참조를 선언하는 대체 방법으로 HasClickHandlers
인터페이스를 제공하기 만합니다. 이 위젯은 등록 된 ClickHandler
에 버튼 클릭에 대해 알립니다.
클래스 ABC
은 ClickHandler
을 구현하거나 ClickHandler
에서 파생 된 내부 (가능한 익명) 클래스를 포함 할 수 있습니다. 일반적인 사용법은 다음과 같습니다.
public class ABC {
...
getSaveButton().addClickHandler(
new ClickHandler() {
public void onClick(ClickEvent event) {
saveToDatabase();
}
}
}
...
HasClickHandlers 감사합니다. ClickHandler는 이벤트를 처리하는 객체 용입니다.
예를 들어, 버튼은 클릭 이벤트를 생성합니다. 클릭 이벤트를 처리하려는 경우이를 수행하는 코드가 포함 된 ClickHandler를 만듭니다. 이 ClickHandler를 Button 객체에 등록하면 클릭이 발생했을 때 버튼이이를 알릴 수 있습니다. HasClickHandlers 인터페이스는 ClickHandlers를 등록하기위한 인터페이스 인 Button (FocusWidget 부모 클래스를 통해)에 의해 구현됩니다. 이 인터페이스는 단순히 ClickHandlers의 등록을 표준화합니다.
- 1. Qt - 이러한 코드 라인이 의미하는 바는 무엇입니까?
- 2. javascript의 file.is_image에서 is_image가 의미하는 바는 무엇입니까?
- 3. 게으른, 열망하는 명시 적로드가 의미하는 바는 무엇입니까?
- 4. CoreData가 의미하는 바는 스레드로부터 안전하지 않습니까?
- 5. Silverlight는 동적 리소스를 지원하지 않습니다. 이것이 의미하는 바는 무엇입니까?
- 6. 'create function ...'에서 SQL Server가 차단되었습니다. 이것이 의미하는 바는 무엇입니까?
- 7. 코드에서 이것이 의미하는 바는 무엇입니까? @ 합성 X = _x; 예
- 8. 루프에서 너무 많은 BB가 의미하는 바는 벡터화 할 수 없습니까?
- 9. HTML 5 로고가 실제로 의미하는 바가 무엇입니까?
- 10. Eclipse 디버깅, 중단 점 - "ArrayIndexOutOfBoundsException : 캐치 및 캐치되지 않음", 이것이 의미하는 바는 무엇입니까?
- 11. Brendan Eich가 설탕과 매크로를 JavaScript에 추가하는 것에 대해 이야기 할 때 의미하는 바는 무엇입니까?
- 12. Twitter에서 기본 인증을 사용하지 않도록 설정하는 경우 - 이것이 의미하는 바는 무엇입니까?
- 13. 멀티 스레드 서비스에서 GREF가 증가/감소하는 경우 (aidl) - 이것이 의미하는 바는 무엇입니까?
- 14. @@ 변수가 Ruby에서 의미하는 것은 무엇입니까?
- 15. 이 문자열이 의미하는 복용량은 무엇입니까?
- 16. WsKSendTo가 STATUS_INVALID_DEVICE_STATE를 반환합니다. 이것이 의미하는 것은 무엇입니까?
- 17. .htaccess 파일에서이 선언이 의미하는 것은 무엇입니까?
- 18. 자바 이클립스에서 src이 의미하는 것은 무엇입니까?
- 19. 백 슬래시 "\"가 실제로 의미하는 것은 무엇입니까?
- 20. 루비에서 "b"가 'b'를 의미하는 이유는 무엇입니까?
- 21. C의 인수 목록에서 의미하는 것은 무엇입니까?
- 22. 메뉴 바는 모질라 파이어 폭스
- 23. 복잡한 쿼리를 의미하는 날짜
- 24. 핸들러가 별도의 어셈블리에있는 경우 이벤트 핸들러가 가비지 수집을 중지합니까?
- 25. 이벤트 핸들러가 존재합니다.
- 26. 플렉스 이벤트 핸들러가 작동하지 않습니다.
- 27. 이벤트 핸들러가 ienumerable의 루프에 추가 된 경우 이벤트 핸들러가 호출되지 않는 이유는 무엇입니까?
- 28. 이 PHP 문장이 의미하는 것
- 29. 워크 플로 제작에서 의미하는 것
- 30. jquery 코드에서 'this'가 의미하는 것
예 : ABC 클래스가 Hasclickhandlers 및 Clickhandler를 구현하고 onClick 및 addClickHandler (HandlerRegistration을 반환 함)를 구현하는 경우 이는 1) click 이벤트에서 onClick 메서드를 통해 작동하고 2) 다른 클래스가 (ClickHandler 및 ABC 클래스의 addClickHandler를 사용하여 이벤트를 등록) 클릭이 방금 발생 했습니까? 권리? – Deam
@ user330281 - 편집 참조 –