从file创建父类的子类

时间:2012-04-30 13:40:15

标签: java constructor

我正在尝试创建一个菜单屏幕,我希望能够创建它,以及动态地进行任何进一步的排列。我创建了一个MenuItem辅助类来处理显示的菜单项,它读取名称,图像,并设置下一个状态(稍后处理的东西)。我想知道的是,我如何创建特定的以下屏幕(它们都是我的Screen类的一些子类)?

将特定对象传递给menuItems的最有效方法是什么?我是否需要预先创建每个可能的屏幕,然后回读它的序列化形式,或者我可以动态创建它们。我希望能够做一些像文字字符串“new SubClass(...)”那样简单的事情并采取行动,但我不知道如何去做。任何其他建议都会很棒!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你想要的是一种从文本文件中读取String命令的机制,并根据此命令显示一个屏幕。

因此,将“display screen”命令的界面解压缩到界面中。例如:

public interface ScreenDisplayer {
    void displayScreen(Screen mainScreen);
}

然后构建Map<String, ScreenDisplayer>

map.put("screen1", new ScreenDisplayer() {
    @Override
    void displayScreen(Screen mainScreen) {
        // TODO display screen 1
    });
// same for all the other commands

点击“菜单项”后,从地图中获取DisplayScreen并调用它:

String command = selectedMenuItem.getCommand();
ScreenDisplayer displayer = map.get(command);
displayer.displayScreen(mainScreen);