gpt4 book ai didi

Java:使单例不那么冗长

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:49 25 4
gpt4 key购买 nike

为了帮助我学习 Java 和编程概念,我正在编写一个机器人来解决游戏中的谜题 PuzzleFreak .

我已将游戏的 Controller 设为单例,因为应该只有一个。但是,现在我到处都有 Controller.getInstance()。我怎样才能使这个不那么冗长?单例甚至可以去这里吗?

我可以将 Controller 方法包装在默认方法中,这样我就可以在 Player 实现中调用 click(x,y),但这感觉不对。

下面是播放器界面和示例实现。

播放器.java:

public interface Player {

default void giveUp() {
Controller.getInstance().click(new Rectangle(704, 545, 64, 18));
Controller.getInstance().delay(0.1);
Controller.getInstance().click(new Rectangle(704, 545, 64, 18));
}

default void play() {
giveUp();
}
}

启动播放器.java:

public class StartupPlayer implements Player {

public void play(){
Controller.getInstance().click(60, 278);
Controller.getInstance().delay(0.5);
Controller.getInstance().type("KevinBot");
Controller.getInstance().delay(0.5);
Controller.getInstance().click(400, 463);
}
}

最佳答案

只需声明一个本地 Controller 并调用一次getInstance():

例如:

public class StartupPlayer implements Player {
public void play(){
Controller controller = Controller.getInstance()
controller.click(60, 278);
controller.delay(0.5);
controller.type("KevinBot");
controller.delay(0.5);
controller.click(400, 463);
}
}

关于Java:使单例不那么冗长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27554432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com