Можно ли использовать два или более интерфейсов для одних и тех же методов? - PullRequest
0 голосов
/ 13 октября 2018

Я делаю простую игру с Java, и у меня есть это сомнение.

Предположим, что есть интерфейс для каждого игрового персонажа

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

Затем я хочу создать интерфейсназывается автоматами, реализуемыми каждым классом, который использует AI-материал (это может быть особый случай Entity, но я подумал об этом отдельно из-за возможности повторного использования)

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)... */
}

Я думаю, что это способствует модульности, потому что каждый интерфейс описывает свои методыне беспокоясь о существовании других интерфейсов, но когда я писал это, я чувствовал, что повторяю себя, так что плохо иметь эти два (или может быть больше) интерфейса с одинаковыми методами?

1 Ответ

0 голосов
/ 13 октября 2018

Если между обоими интерфейсами есть что-то общее, возможно, вы можете определить родительский интерфейс, а затем Entity и Automata могли бы его расширить.

Позвольте мне проиллюстрировать это ниже:

interface AI {
    Vector2 getPosition();
}

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

Таким образом, любому другому интерфейсу, который является частью AI, не нужно явно добавлять другой метод, а вместо этого просто расширять AI

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...