如果想让别人扩展你写的插件,就要声明扩展点。即使不被别人扩展,也可以构建自己的插件体系,比如写个RCP,然后提供扩展,这样功能
是以插件的形式扩展,对程序的架构是有益处的,强迫自己松耦合。
进入正题,就是在plugin.xml里声明
<extension-point id="Observers" name="Test Observer"/>
id是不用加全名的,而且名字可以随便取,意思对就行,没有限制。然后把要求其他插件实现的借口发布(即com.bugu.rcp.plug_1.popup.actions.TestObserver)。
如果其他插件要引用的话:
<extension
point="com.bugu.rcp.Plug_1.Observers">
<listener
class="com.bugu.rcp.plug_1.popup.actions.TestObserver">
</listener>
</extension>
此处的extension point="com.bugu.rcp.Plug_1.Observers" 是插件id+上面声明的插件扩展点id。
class是扩展点的类型,插件就是要实现这个借口,实现的时候只要有无参构造函数就行啦,因为是通过反射生成对象的。