8

我正在学习 GWT 并且已经开始掌握它。我正处于我的代码变得一团糟的地步,所以我要回去并将其中的合理部分分解为复合材料。我遇到的第一个问题是我的工具支持未能为新的 Composite 类提供 initWidget() 方法。它确实包含一个默认构造函数。
目前,我只是简单地initWidget()通过调用super(initWidget(w)) My project compiles 并按预期运行来填充我的重写方法,尽管我觉得好像我必须遗漏一些东西。

重写 init 时我应该记住什么,如果我需要在构造函数中放置什么。还有什么我需要知道的,或者在此之后它只是归结为普通的旧 Java 吗?

澄清 - 我想到这个问题可能有不同的答案,具体取决于您是打算将所述Composite类作为库的一部分发布还是仅仅作为独立应用程序的一部分发布。我目前特别无意开发外部有用的组件(主要是因为我对这项特殊技术非常陌生。)

谢谢!

4

2 回答 2

7

我不确定我是否理解你想要做什么。但是对于我编写的所有 Composite,我从未覆盖 initWidget 方法。因为 Composite 本身不需要用构造函数初始化,即不需要调用 super() 我扩展复合的小部件的构造函数看起来像:

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

作为最佳实践,imo,只有扩展 Composite 的小部件才应将其称为“自己的”initWidget。

于 2009-02-17T20:04:34.333 回答
2

GWT 会议:构建库的最佳实践”提供了一些技巧。您还应该查看 GWT 的源代码和 GWT 库之一的源代码(如gwt-ext

[编辑] 我刚刚看到另一个选项:suco。从描述:

一个微型库,有助于保持 GWT 客户端代码的清洁和模块化。

于 2009-02-16T08:45:09.123 回答