GWT综合最佳实践

问题描述 投票:8回答:2

我正在学习GWT,并且已经开始掌握它了。我正处于我的代码变得一团糟的地步,所以我回过头来将其中的合理部分分解为Composites。我遇到的第一个问题是我的工具支持未能为新的Composite类提供一个initWidget()方法。它确实包含一个默认构造函数。暂时,我只是使用对initWidget()的调用来填充覆盖的super(initWidget(w))方法。我的项目可以按预期进行编译和运行,尽管我感觉好像必须丢失一些东西。

重写init时应牢记,如果需要在构造函数中放置任何内容,该怎么办。在此之后,我还有其他需要知道的内容吗?还是可以归结为常规的旧Java?

澄清-在我看来,对于这个问题,可能有不同的答案,这取决于您打算将所说的Composite类作为库的一部分发布,还是作为独立应用程序的一部分发布。目前,我尤其无意开发对外部有用的组件(主要是因为我对这项特定技术非常了解。)

谢谢!

gwt composite
2个回答
7
投票

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

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

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


2
投票

GWT Conference: Best Practices for Building Libraries”给出了几点提示。您还应该查看GWT的源代码以及其中一个GWT库的源代码(例如gwt-ext

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

一个微型库,有助于维护您的GWT客户端代码的干净和模块化。

© www.soinside.com 2019 - 2024. All rights reserved.