Eri*_*ric 3 java inheritance main-method
我想定义一个基类,它定义一个实例化类的main方法,并运行一个方法.但是有几个问题.这是基类:
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())
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个示例派生类:
public class UselessStrategy
{
void execute(SoccerRobot robot)
{
System.out.println("I'm useless")
}
}
Run Code Online (Sandbox Code Playgroud)
它定义了一个简单的execute方法,在用作主应用程序时应该在main方法中调用.但是,为了做到这一点,我需要在基类的main方法中实例化派生类.这似乎不可能.
我宁愿不必为每个派生类重复main方法,因为它感觉有点不合时宜.
有没有正确的方法呢?
将main方法移到单独的类中.单独的关注
策略(名称说明一切)
启动器(将组件组装在一起并触发执行)
public class Launcher
{
public static void main(String args)
{
Strategy s = new UselessStrategy();
//OR Strategy s = CreateInstance(args[0]) ;
//OR equiv mechanism for Dependency Injection if you don't want to hardcode the derived strategy to use.
s.execute(new SoccerRobot())
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8405 次 |
| 最近记录: |