NetBeans vs. Eclipse RCP: 插件機制比較
本文是JavaLobby上的一篇小文,作者對NetBeans和Eclipse的插件機制進(jìn)行了一些比較,如有興趣,可以看看。(2008.10.15最后更新)
NetBeans與Eclipse處理擴展點及擴展的方式是不同的。讓我們看看這些不同之處。請注意,本文僅針對那些對這兩個平臺的插件機制都具備相當(dāng)知識的人。
NetBeans Platform:
定義擴展點 |
創(chuàng)建一個接口,并將它置入一個公共模塊包中。 |
創(chuàng)建擴展 |
創(chuàng)建上述接口的實現(xiàn),并通過layer.xml文件將它注冊到虛擬文件系統(tǒng)中。 |
讀取可用的擴展 |
使用org.openide.util.Lookup類去獲取上述接口實現(xiàn)的實例。
|
Eclipse RCP:
定義擴展點 |
創(chuàng)建一個擴展點的描述符方案,該方案定義了擴展點的元素與屬性,以及這些元素之間的關(guān)系。
可用的屬性類型為:boolean,string,java,resource和identifer。可向該方案的任何部分添加文檔。
最后,向plugin.xml文件 注冊你的擴展點。 |
創(chuàng)建擴展 |
根據(jù)上述方案,在plugin.xml文件中創(chuàng)建一個子部分,在此處向?qū)傩再x予值。如果屬性類型為java,則也要創(chuàng)建被引用的Java類。 |
讀取可用的擴展 |
使用org.eclipse.core.runtime.IExtensionPoint獲取擴展的列表。從每個擴展中獲取IConfigurationElement的列表:
每個IConfigurationElement對應(yīng)于plugin.xml文件中的一個XML標(biāo)簽。 |
NetBeans平臺 |
Eclipse RCP |
優(yōu)點 |
缺點 |
優(yōu)點 |
缺點 |
非常簡單,易于學(xué)習(xí) |
擴展點沒有定義它自己:沒有關(guān)于是哪個公共模塊接口作為擴展點使用的信息。 |
擴展點清晰地定義了它自己:快速查看jar文件,你就能立即知道該插件提供了哪些擴展點,以及它們是由哪些元素組成的。 |
比較復(fù)雜,需要更多時間去學(xué)習(xí) |
|
使用的查找名也未作定義 |
有許多屬性類型:可以在XML文件中描述特定的結(jié)果。 |
|
|
擴展和其它的內(nèi)容都混寫在layer.xml文件中:難以確定該模塊用于哪些擴展。 |
可生成擴展的多數(shù)組成部分,見PDE。 |
|
|
|
定義好了文檔的位置。 |
|