2つ以上のインタフェースが同じメソッドを持っているために大丈夫ですか?

ニコラスベラ:

私は、Javaで簡単なゲームを作ってるんだ、と私はこの疑問を持っています。

すべてのゲームのキャラクターのためのインターフェースがありますと仮定

public interface Entity{
   Vector2 getPosition();
   /* More methods...*/
}

それから私は、オートマトンは、AIのものを使用するすべてのクラスによって実装されると呼ばれるインタフェースを作成する(これは、エンティティの特殊なケースかもしれないが、私はので、再利用性の別にそれを考えました)

public interface Automata{
  Vector2 getPosition(); // The AI stuff needs to know this
  /* More methods needed for AI (some may also be the same as Entity)... */
}

私はこの私を書いていた間、私は私が同じ方法で、この2つ(またはそれ以上でもよい)のインターフェイスをしている、自分自身を繰り返していたように感じたすべてのインターフェイスは、他のインタフェースの存在を気にすることなく、そのメソッドを記述しているので、これはモジュール化を促進すると思いますが、何か悪いですか?

ニコラスK:

両方のインターフェイス間で共通のものがあるなら、多分あなたは親インターフェースを定義することができ、その後、EntityおよびAutomataそれを拡張することができます。

私は以下のことを説明してみましょう:

interface AI {
    Vector2 getPosition();
}

interface Entity extends AI { }
interface Automata extends AI { }

この方法では、AIの一部であり、他のインターフェイスは、明示的に別のメソッドを追加する必要はなく、単に延長しないでしょう AI

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=185888&siteId=1