Я пытаюсь создать приложение для изучения Java, в основном это футбольный матч на консоли.
Класс игрока имеет все атрибуты, такие как имя, номер, возраст ..
Существуют и другие классы, которые относятся к игроку, это роли игрока (нападающий, защитник, полузащитник, вратарь).
Роли реализуют Интерфейс, который имеет методы, чтобы получить каждый из них свою собственную формулу атрибута (Как Сила Защиты и Сила атаки).
Итак, есть метод, который является Общей Силой, формула которого равна всем, независимо от роли игрока.
Если я установлю General Power в методах дочернего класса, мне придется писать в каждом Role Class один и тот же код несколько раз (я почти уверен, что это неправильно .. повторное использование кода).
Может быть, я должен реализовать метод на интерфейсе, но я не знаю, как поступить.
У меня есть ссылка на GitHub - он находится на ветке Develop.
А вот ниже приведен код, который пытается понять, что я пытаюсь выяснить.
public interface PlayerAttributes {
PlayerPosition getPlayerPosition(PlayerPosition position);
Double getAttackPower(Float value);
}
class Player {
String name;
Integer number;
PlayerPosition position; //Enum
}
public class Defender extends Player implements PlayerAttributes {
@Override
public PlayerPosition getPlayerPosition(PlayerPosition position) {
return PlayerPosition.DEFENDER;
}
@Override
public Double getAttackPower(Float value) {
return value * 1.2;
}
@Override
public Double getDefensePower(Float value) {
return value * 2.5;
}
}