Я хочу определить базовый класс, который определяет основной метод, который создает экземпляр класса и запускает метод. Однако есть пара проблем. Вот базовый класс:Наследование основного метода
public abstract class Strategy
{
abstract void execute(SoccerRobot robot);
public static void main(String args)
{
Strategy s = new /*Not sure what to put here*/();
s.execute(new SoccerRobot())
}
}
А вот пример производный класс:
public class UselessStrategy
{
void execute(SoccerRobot robot)
{
System.out.println("I'm useless")
}
}
Он определяет простой выполнить метод, который должен быть вызван в качестве основного метода при использовании в качестве основного приложения , Однако для этого мне нужно создать экземпляр производного класса из основного метода базового класса. Это не представляется возможным.
Я бы предпочел не повторять основной метод для каждого производного класса, поскольку он чувствует себя несколько неосновательным.
Есть ли правильный способ сделать это?
Ваш дизайн кажется немного назад. Разве не было бы смысла создавать экземпляр «SoccerRobot» с конкретной стратегией? –
SoccerRobot представляет физические свойства робота, а не самого приложения. Он обеспечивает высокоуровневое управление роботом (navigateTo, getBallAngle и т. Д.). Поэтому я не думаю, что он должен придерживаться стратегии. – Eric