Java-创建方法数组

我正在为学校进度设计基于文本的冒险游戏。我将每个“级别”设置为一个类,并将每个可探索区域(节点)设置为相应类中的一个方法。

困扰我的是从一个节点移动到另一个节点的代码。由于每个节点最多连接四个其他节点,因此我必须在每种方法中重复一个极为相似的代码块。

我更愿意做的是在每个节点的开头包含一个方法数组,如下所示:

public static void zero()

{

... adjacentNodes[] = {one(), two(), three(), four()};

}

然后将该数组发送到通用方法,然后将播放器发送到正确的节点:

public static void move(...[] adjacentNodes, int index)

{

adjacentNodes[index];

}

我简化了代码,但这是一般的想法。这可能吗?

回答:

每当您想到函数指针时,就可以使用Adapter模式(或变体)转换为Java。就像这样:

public class Node {

...

public void goNorth() { ... }

public void goSouth() { ... }

public void goEast() { ... }

public void goWest() { ... }

interface MoveAction {

void move();

}

private MoveAction[] moveActions = new MoveAction[] {

new MoveAction() { public void move() { goNorth(); } },

new MoveAction() { public void move() { goSouth(); } },

new MoveAction() { public void move() { goEast(); } },

new MoveAction() { public void move() { goWest(); } },

};

public void move(int index) {

moveActions[index].move();

}

}

以上是 Java-创建方法数组 的全部内容, 来源链接: utcz.com/qa/399291.html

回到顶部