将多个集合函数组合到java中的一个通用setter中

时间:2014-01-08 19:58:25

标签: java reflection

我有一个包含以下公共方法的类:

    public void setStartGameEvent(GameTypeMode gameTypeMode) {
        gameTypeMode.setGameType(readIntFromConsole());
    }

    @Override
    public void setComputerHeuristicEvent(GameTypeMode gameTypeMode) {
        gameTypeMode.setComputerHeuristic(readIntFromConsole());
    }

    @Override
    public void setBackgroundChoice(GameTypeMode gameTypeMode) {
        gameTypeMode.setBackground(readIntFromConsole());
    }


    @Override
    public void setBorderChoice(GameTypeMode gameTypeMode) {
        gameTypeMode.setBorder(readIntFromConsole());
    }

注释:

  • 该类是一个代理,这就是为什么函数的输入是我们想要设置数据的地方 - 该类是一个consoleEventHandler,主类执行eventHandler.setBlah(GameTypeMode)并从中获取数据正确的输入法。

  • readIntFromConsole()只是从标准输入读取一个int并处理异常。

因为您可以很容易地看到所有功能完全相同,只是具有不同的设置属性。 我的问题是,如果有一种方法可以用更通用的\复杂的方式来做,比如反射或任何类似的

编辑:有关此课程的更多解释

这个课程是游戏的一部分。 游戏的输入可以来自控制台\图形显示\鼠标等。 输出(游戏本身)是根据所选的输入方法创建的。

我有一个eventHandler接口,它定义了特定输入法应该实现的所有功能,以便游戏可以工作(例如上面的函数) 这意味着我有consoleEventHandler,graphicEventHandler ......

现在对于每个属性,我需要为所有eventHandler可用实现一个set方法(可能很多),这就是为什么我要问这个关于为每个eventHandler推广set函数的问题

1 个答案:

答案 0 :(得分:0)

你提出的任何内容都会比显示的明显,直接的代码更复杂。

在这种抽象层次上,由于这些微不足道的“重复”,成本超过了任何好处。