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