クラス X に特定のメソッド foo() を含む Eclipse プラグインがあります。
Class X {
private void foo(){
...
}
}
他のプラグインがクラス foo() の実装を置き換えることを可能にする拡張ポイントを作成するにはどうすればよいですか?
また、拡張ポイントを作成して、他のプラグインと同じように拡張する必要がありますか? または単に基本実装を提供しますか?
拡張ポイントを作成するには、 vogella.deの拡張ポイント チュートリアルを読むことをお勧めします。
他の質問について: クラス X を提供するための拡張ポイントを定義する場合は、拡張ポイントを使用してそのインスタンスを取得する必要もあります。実装が拡張機能が提供されていないときに実行される実装であることは良いオプションかもしれませんが、そうでない場合はそうではありませんが、一般的には拡張機能を使用することもお勧めです (別名、独自のドッグフードを食べる) 。
ただし、プロバイダー拡張機能で複数の拡張機能を使用できる可能性があることに注意してください。その場合も処理する必要があります。
基本実装について - 他の拡張プロバイダーがオーバーライドできるある種の抽象基本クラスを提供すると、いい感じになります。