我不知道这是否可行,这就是我需要你帮助的原因。 我想要做的是我想要向Vector添加对象。问题是对象是在另一个类中创建的。 可能吗?
这是我的代码:
class Factory {
public Factory() {
Action run = new RunAction();
Action climb = new ClimbAction();
}
}
public class Game {
private Vector<Action> actions = new Vector<Action>();
public Game(Factory fact) {
actions.add(XXXX); ****//What to write here to add the actions created in Factory? Somehow I want to use fact for this.**
}
}
class ClimbAction extends Action {
public ClimbAction() {
super("Try to climb\n");
}
}
class RunAction extends Action {
public RunAction() {
super("Try to run\n");
}
}
class TestClass {
Factory f = new Factory();
Game game = new Game(f);
}
答案 0 :(得分:3)
你的Factory
类还不是很有用:它会在构造中创建两个对象......可以立即进行垃圾回收。
考虑像这样的Factory类:
final class Factory {
public [static] Action createRun() {
return new RunAction();
}
public [static] Action createClimb() {
return new ClimbAction();
}
}
这个类看起来更像&#34;类似工厂模式&#34;,它(静态)/一个实例可以用来填充你的矢量。