【发布时间】:2011-02-28 14:55:11
【问题描述】:
我想定义一个基类,该基类定义一个实例化该类的主方法,并运行一个方法。但是有几个问题。这是基类:
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")
}
}
它定义了一个简单的执行方法,当作为主应用程序使用时,它应该在主方法中调用。但是,为此,我需要从基类的 main 方法中实例化派生类。这似乎是不可能的。
我宁愿不必为每个派生类都重复 main 方法,因为这感觉有些不必要。
有正确的方法吗?
【问题讨论】:
-
您的设计似乎有点倒退。使用特定策略实例化
SoccerRobot不是更有意义吗? -
SoccerRobot 代表机器人的物理属性,而不是应用程序本身。它提供对机器人的高级控制(navigateTo、getBallAngle 等)。所以我认为它不应该持有这种策略。
标签: java inheritance main-method