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