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