3

アプリケーションのインターフェイスを変更するためのベスト プラクティスは何ですか。インターフェイスが多くの Java クラスによって実装されている場合、それを変更する最善の方法は何ですか? 新しいクラスに拡張しますか? 任意のデザイン パターンを使用しますか? または委任を使用しますか(委任を使用する方法はないと思います)?非推奨のアノテーションを使用する予定はありますか?

これが最善の解決策ですか?

public interface interface1
{
}

public interface interface2 extends interface1
{
public void newMethod()
}
4

4 に答える 4

3

すぐに思いつく方法は2つあります。

  1. IDE で、リファクタリング ツールを使用してインターフェイスを変更します。より高度な IDE (Eclipse は可能です。他については知りません) は、既知の実装をすぐにリファクタリングできます。これには、影響を受けるプロジェクトが開いている必要があります。
  2. あなたのソリューションMyInterface2 extends MyInterfaceは、既存の実装者を壊さないため、広く使用されています。

あなたのソリューションがコード監査またはレビューで出てきた場合、私はそれを拒否しません - それは問題ありません、私見です。

于 2012-09-21T21:34:28.603 に答える
0

デザインパターンを使用できます。Abstract Factory または Bridge パターンを使用できます

于 2012-09-21T22:17:32.733 に答える
0

コードを所有している場合、インターフェイスを変更する最善の方法は、非推奨のコードをそのままにしておくのではなく、インターフェイスへのすべての参照を修正することです。

于 2012-09-21T21:33:33.373 に答える
0

このメソッドが実装されている他のすべてのクラスで必要とされていない場合はinterface1、これを行うことで大幅なコード変更を回避できると思います。

次に、次の質問ですが、これは必要ですinterface2か (または) 必要なクラスにあるだけで十分ですか?

この新しいメソッドを として定義したくない場合contract、つまり、他のクラスを実装する必要がない場合は、interface2.

于 2012-09-21T21:35:09.463 に答える