微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java – 创建一个方法数组

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

令人困惑的是从一个节点移动到另一个节点的代码.因为每个节点连接到最多四个其他节点,所以我必须在每个方法中重复一个非常相似的代码块.

我喜欢做的是在每个节点的开头包括一系列方法,如下所示:

public static void zero()
{
    ... adjacentNodes[] = {one(),two(),three(),four()};
}

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

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

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

解决方法

每当你想到指针到功能时,你都可以通过使用适配器模式(或变体)来转换为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[i].move();
    }
}

原文地址:https://www.jb51.cc/java/124159.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐