全面比较Swing与SWT
简短的说Swing相对于SWT的优势有 速度快 有皮肤机制支持 优秀的框架 灵活可扩展 官方标准 %的市场占有率 丰富的第三方类库 不计其数的学习材料 强大免费的图形界面设计工具(NetBeans Matisse) 相对于SWT的缺点有 多耗 M左右内存 启动速度稍慢 桌面集成相对弱 两者都有着漂亮的本地化外观
从两者当初设计的目标来看 SWT是治标 目的是为了提高速度 改善外观 Swing是治本 它从框架 结构着手 Swing因此有着比SWT更广阔的发展空间 由于有着优秀的架构 而且Java完全控制着实现权 所以Swing总是可以不断被改进的 当Swing成熟了而弥补了速度和外观后 Swing的发展就因其良好的架构 就因为代码控制权等因素 而呈现出一片广阔的天空 而SWT从一诞生起 其先天性架构和实现缺陷就已经决定它很难前进 由于依赖本地操作系统 SWT可以发展的空间很小 开始也许可以借助操作系统的本地实现来快速达到很好的效果 但到此就结束了 自己再优化反展的空间就很小了 它将的实现大部分都交给了异质的系统 它无法控制的系统 却需要花费相当代价进行交互的系统
SWT上手速度要快一些 因为SWT的API类似于传统的GUI工具 这使得许多从传统GUI工具中转过来的程序员很容易上手 传统GUI工具系统尤其是Windows平台的 是基于消息映射机制的 其基本模型是面向过程和面向消息的 Swing的设计思想是基于面向对象的典范 其MVC模式是程序设计模式的经典 总的来说 Swing与SWT就像面向对象语言之于面向过程语言 但就学习曲线来说 Swing并不比SWT陡峭 Swing本身已经非常成熟 官方提供的文档 各种网上资料 书籍 讨论区浩如烟海 其实学习曲线也未必比SWT陡峭
就Swing与SWT的开发体验来说 SWT给开发者的体验往往是对于SWT的满意程度同使用SWT的时间成反比 同对SWT与Swing的了解程度成反比 刚开始往往是非常满意 甚至有惊艳的感觉 但随着使用时间的增长 随着对于SWT了解的深入 这种满意度就会越来越下降 总之喜爱程度和了解程度成反比 Swing给开发者的体验是 开始也许你要经常发牢骚 这些牢骚就像在抱怨一个饱经风霜 看似相貌平平 但实际却非常有内涵的人一样 随着你对它的了解的加深 你就会越来越被它吸引 最终你会惊叹于它的博大精深 你会发现你越学懂得越少 而你的知识和能力却像内力一样越来越深厚 总之喜爱程度和了解程度成正比
lishixinzhi/Article/program/Java/hx/201311/27183