당신이하고있는 방식은 직관적이며 작동하지만 응용 프로그램의 각 부분이 강하게 결합되어 있기 때문에 응용 프로그램이 커지면 지옥이 생기기 시작할 것입니다. 이 문제에 대한 해결책은 MVC design pattern과 observer design pattern입니다.
이상적으로, MVC 패턴을 사용하면 위젯이 다른 위젯을 '알기'를 원하지 않습니다. 컨트롤러 인 모든 위젯을 아는 클래스 만 있습니다. 하나의 위젯이 다른 위젯에 메시지를 보내거나 신호를 보낼 필요가있을 때마다 적절한 위젯으로 메시지를 중계하는 Controller 클래스에 알려줍니다. 이렇게하면 두 위젯이 분리되고 다른 위젯을 손상시키지 않고 변경할 수 있습니다. 열거 형을 사용하여 컨트롤러가 응답해야하는 모든 가능한 작업을 열거 할 수 있습니다.
이벤트가 발생했을 때 위젯이 컨트롤러 만 호출해야한다면 간단히 적절한 (정적) 메소드를 호출하고 완료 할 수 있습니다. 그러나 다른 여러 클래스에 이벤트를 통보해야하는 즉시 Observer 패턴을 사용하는 것이 좋습니다.이 패턴을 사용하면 클래스를 변경하지 않고도 여러 개의 다른 클래스를 알릴 수 있습니다. 그것은 단순히 eventHandler에서 notifyPObservers()를 호출하기 만하면됩니다. 얼마나 많은 청취자가 있고 어떤 유형인지는 무의미합니다. 이렇게하면 클래스를 청취자와 분리 할 수 있습니다. 컨트롤러 만 청취하더라도 클래스의 다른 코드에서 '콜백'코드를 명확하게 분리하므로 패턴을 사용하는 것이 좋습니다.
현재 BTW는 GWT 또는 Java와 관련이 없습니다.