产品的迁移工作接近尾声了,在这次迁移中,首次使用SWT,没什么SWT方面的经验,虽然我负责的是外围模块,使用SWT不是很多,但也算见识了SWT的一些优点和不足(指我认为的不足),这几点给我们的计划带来了不少影响,导致进度一拖再拖,发布日期一变再变,以后再用SWT,要长些心眼。以下就是我认为的SWT的几点不足:
1、SWT对象的构造,总要以父容器为参数传进构造函数,如在shell中加入一个button,对比AWT或Swing,会发现基本是倒过来一样。这个倒不能说是不足,还有些人说SWT的写法更符合面向对象的理念,但我总觉得有点别扭,特别是熟悉AWT的写法之后,再来用SWT,就算SWT的写法是对的,心里面还是觉得不应该这样做。这也有点习惯在捉弄吧。
SWT写法:
Button button = new Button(shell, SWT.NONE);
button.setText("OK");
AWT写法:
Button button = new Button("OK");
panel.add(button);
2、SWT多平台支持。由于产品需要支持MacOS、AIX、Soloris power pc/x86、HPUX、Linux(redhat/ubuntu/suse...),在这多平台支持上面的开发与调试,耗掉了不少的人日。SWT严重依赖于系统底层,不同的系统,需要不同的SWT.jar才能使产品正常地运行,即使同一平台,对Jar包的依赖也有点差异,这里就拿满地开花的Linux来说事了。本来产品用的Jar是拿ecl