自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

全面比較Swing與SWT

開發(fā) 后端
本文把Swing與SWT進行全面比較,Swing與SWT之間的故事就像是火車與馬車之間的故事。

簡短的說Swing相對于SWT的優(yōu)勢有:速度快、有皮膚機制支持、優(yōu)秀的框架、靈活可擴展、官方標(biāo)準(zhǔn)、47%的市場占有率、豐富的第三方類庫、不計其數(shù)的學(xué)習(xí)材料、強大免費的圖形界面設(shè)計工具(NetBeans Matisse)。相對于SWT的缺點有:多耗10M左右內(nèi)存、啟動速度稍慢、桌面集成相對弱。兩者都有著漂亮的本地化外觀。

從兩者當(dāng)初設(shè)計的目標(biāo)來看,SWT是治標(biāo),目的是為了提高速度、改善外觀;Swing是治本,它從框架、結(jié)構(gòu)著手。Swing因此有著比SWT更廣闊的發(fā)展空間。由于有著優(yōu)秀的架構(gòu),而且Java完全控制著實現(xiàn)權(quán),所以Swing總是可以不斷被改進的。當(dāng)Swing成熟了而彌補了速度和外觀后,Swing的發(fā)展就因其良好的架構(gòu),就因為代碼控制權(quán)等因素,而呈現(xiàn)出一片廣闊的天空。而SWT從一誕生起,其先天性架構(gòu)和實現(xiàn)缺陷就已經(jīng)決定它很難前進。由于依賴本地操作系統(tǒng),SWT可以發(fā)展的空間很小。開始也許可以借助操作系統(tǒng)的本地實現(xiàn)來快速達到很好的效果,但到此就結(jié)束了,自己再優(yōu)化反展的空間就很小了。它將的實現(xiàn)大部分都交給了異質(zhì)的系統(tǒng),它無法控制的系統(tǒng),卻需要花費相當(dāng)代價進行交互的系統(tǒng)。

SWT上手速度要快一些。因為SWT的API類似于傳統(tǒng)的GUI工具,這使得許多從傳統(tǒng)GUI工具中轉(zhuǎn)過來的程序員很容易上手。傳統(tǒng)GUI工具系統(tǒng)尤其是Windows平臺的,是基于消息映射機制的,其基本模型是面向過程和面向消息的。Swing的設(shè)計思想是基于面向?qū)ο蟮牡浞?,其MVC模式是程序設(shè)計模式的經(jīng)典??偟膩碚f,Swing與SWT就像面向?qū)ο笳Z言之于面向過程語言。但就學(xué)習(xí)曲線來說,Swing并不比SWT陡峭。Swing本身已經(jīng)非常成熟,官方提供的文檔,各種網(wǎng)上資料、書籍、討論區(qū)浩如煙海,其實學(xué)習(xí)曲線也未必比SWT陡峭。

就Swing與SWT的開發(fā)體驗來說,SWT給開發(fā)者的體驗往往是對于SWT的滿意程度同使用SWT的時間成反比,同對SWT與Swing的了解程度成反比。剛開始往往是非常滿意,甚至有驚艷的感覺。但隨著使用時間的增長,隨著對于SWT了解的深入,這種滿意度就會越來越下降。總之喜愛程度和了解程度成反比。Swing給開發(fā)者的體驗是。開始也許你要經(jīng)常發(fā)牢騷,這些牢騷就像在抱怨一個飽經(jīng)風(fēng)霜、看似相貌平平、但實際卻非常有內(nèi)涵的人一樣。隨著你對它的了解的加深,你就會越來越被它吸引,最終你會驚嘆于它的博大精深。你會發(fā)現(xiàn)你越學(xué)懂得越少,而你的知識和能力卻像內(nèi)力一樣越來越深厚。總之喜愛程度和了解程度成正比。

對我來說,Swing與SWT之間的故事就像是火車與馬車之間的故事:火車剛發(fā)明的時候,許多人嘲笑火車的速度太慢、太丑陋?;疖囋?**次試跑的時候,人們坐著華麗的馬車和火車比賽,結(jié)果很容易就超過了火車。于是人們都在嘲笑這個丑陋、笨重而緩慢的家伙,卻看不到火車的本質(zhì)和潛力。幾百年后,火車的速度已經(jīng)超過一百多公里,運輸力已經(jīng)達到成千上萬噸,火車已經(jīng)成為現(xiàn)在交通的主干力量,而馬車仍然在徘徊在當(dāng)初。為什么呢?就因為火車的本質(zhì)架構(gòu)是好的;就因為火車有著很大改進空間;就因為火車設(shè)計之初的目標(biāo)是遠大的,不是運幾百斤東西就滿足了的,而是為更高速度、更大運力鋪好了基礎(chǔ)架構(gòu)。

【編輯推薦】

  1. 概述Swing大多數(shù)控件
  2. GUI程序與Swing中的線程
  3. 淺析Swing.SWT和AWT的區(qū)別
  4. AWT和Swing的區(qū)別
  5. 淺談Swing中提供了JOptionPane
責(zé)任編輯:佚名 來源: 電子工業(yè)出版社
相關(guān)推薦

2009-07-10 11:07:18

Swing和SWT

2009-07-15 15:15:42

比較Swing和SWT

2009-07-15 16:39:51

AWT和Swing

2009-07-16 13:37:33

Swing和AWT

2009-07-15 10:23:51

Swing SWT集成

2009-07-17 09:36:14

SWT和Swing的區(qū)

2009-07-17 15:30:30

JFaceAWT和SWTSwing

2009-07-14 16:02:04

SWT和Swing

2009-07-14 15:12:36

SwingSWT和AWT

2009-07-10 13:36:32

Swing容器

2009-07-17 09:44:28

Look And Fe布局管理器SWT和Swing

2020-07-07 07:00:00

RustGo語言編程語言

2009-07-17 10:25:41

AWT和SwingSWT

2009-07-17 09:55:02

事件監(jiān)聽器SWT和SwingAWT

2019-12-16 08:00:00

ReactAngularVue

2009-06-24 16:16:30

JSF和Tapestr

2009-07-17 09:07:20

2009-06-26 14:37:10

EJB和Spring

2021-01-14 09:00:00

開發(fā)FedoraUbuntu

2009-08-11 14:57:11

比較C#和Java
點贊
收藏

51CTO技術(shù)棧公眾號