【发布时间】:2014-03-22 09:15:53
【问题描述】:
我想在java中实现一个工厂模式,但是我有一些问题
我有 AbstractAction 类,它是 MapMoveAction、CutAction 等子类的抽象类
和类ActionFactory是创建具体类实例的工厂,动作工厂类包含一个静态方法createAction,它以字符串作为参数来识别要创建的具体类
但我的问题是每个具体类在需要构造时都采用不同的参数:
public class ActionFactory {
public AbstractAction createAction(String uniqueName) {
// TODO
}
}
public class CutAction extends AbstractAction{
public static final String UNIQUE_NAME = "cut";
List<Resource> resources;
public CutAction(List<Resource> resources) {
this.resources = resources;
}
@Override
public String getActionCommand() {
StringBuilder command = new StringBuilder(UNIQUE_NAME);
command.append(" ");
for(Resource resource : resources) {
command.append(resource.getName());
command.append(",");
}
command.deleteCharAt(command.lastIndexOf(","));
return command.toString();
}
}
public class UseAction extends AbstractAction{
public static final String UNIQUE_NAME = "use";
int cell;
public UseAction(int cell) {
this.cell = cell;
}
@Override
public String getActionCommand() {
return UNIQUE_NAME + " " + cell;
}
}
【问题讨论】:
标签: java object design-patterns factory