GWT Composite лучшие практики - PullRequest
8 голосов
/ 16 февраля 2009

Я изучаю GWT и начал изучать его. Я нахожусь в точке, где мой код становится беспорядком спагетти, поэтому я возвращаюсь и выделяю разумные части этого как Композиты. Первая проблема, с которой я столкнулся, заключалась в том, что моя инструментальная поддержка не смогла дать новому классу Composite метод initWidget (). Он включал конструктор по умолчанию.
В настоящее время я просто заполнил свой переопределенный метод initWidget() вызовом super(initWidget(w)) Мой проект компилируется и запускается, как и ожидалось, хотя я чувствую, что что-то упустил.

Что я должен иметь в виду при переопределении init и что, если что-то нужно сделать, мне нужно поместить в конструктор. Есть ли что-то еще, что мне нужно знать, или это просто сводится к обычной старой Java после этого?

Разъяснение - мне пришло в голову, что, вероятно, существуют разные ответы на этот вопрос в зависимости от того, намереваетесь ли вы выпустить указанные Composite классы как часть библиотеки или просто как часть вашего автономного приложения. В частности, в настоящее время у меня нет намерения разрабатывать внешне полезные компоненты (в основном потому, что я настолько экологичен в этой конкретной технологии).

Спасибо!

Ответы [ 2 ]

7 голосов
/ 17 февраля 2009

Я не уверен, что понимаю, что вы пытаетесь сделать. Но, несмотря на все написанные мной Composite, я никогда не переопределял метод initWidget. Поскольку самому Composite не нужно инициализироваться с помощью конструктора, то есть нет необходимости вызывать super (), мои конструкторы виджетов, расширяющих составные, выглядят примерно так:

public mywidget() {
  SomePanel p = new SomePanel();
  ....
  initWidget(p);
}

В качестве лучшей практики, imo, только виджет, расширяющий Composite, должен вызывать свой собственный initWidget.

2 голосов
/ 16 февраля 2009

" GWT Conference: лучшие практики для создания библиотек " дает пару советов. Вы также должны посмотреть на источник GWT и на источник одной из библиотек для GWT (например, gwt-ext )

[РЕДАКТИРОВАТЬ] Я только что увидел другой вариант: suco . Из описания:

Микро библиотека, которая помогает поддерживать ваш клиентский код GWT чистым и модульным.

...