我有一个Eclipse插件,它在类X中包含某个方法foo()。
Class X {
private void foo(){
...
}
}
如何创建一个扩展点,允许其他插件替换类foo()的实现?
我应该创建一个扩展点,并像其他插件一样扩展它吗?或者只是提供基础实现?
答案 0 :(得分:1)
为了创建扩展点,我建议您阅读vogella.de上的扩展点教程:http://www.vogella.de/articles/EclipseExtensionPoint/article.html它包含扩展点定义及其应用程序。
关于您的其他问题:如果您定义了提供X类的扩展点,您还应该使用扩展点来获取其实例。它可能是一个很好的选项,你的实现是在没有提供扩展时运行的实现,否则不是,但通常你也不妨使用扩展(也就是吃你自己的内部测试)。
但是,请记住,多个扩展可能可用于提供程序扩展,您还必须处理该情况。
关于基本实现 - 如果你提供某种其他扩展提供者可以覆盖的抽象基类,这是一个不错的选择。