gpt4 book ai didi

java - 有没有办法确定 "main"是Android还是Java

转载 作者:行者123 更新时间:2023-12-01 19:16:35 25 4
gpt4 key购买 nike

我最近编写了一款 Java 纸牌游戏,并将所有游戏逻辑编写在一个名为 Game 的类中。在可能的情况下,我尝试将所有 GUI 处理保留在此类之外。我现在正在尝试将此游戏转换为 Android 应用程序。

在 playAutomaticTurn() 方法(由 Android Activity 和 Java 桌面应用程序使用)中,如果计算机玩家希望宣布他们获胜,我会调用 Game 中的另一个方法。这会根据使用我创建的 SoundEffect 类(使用 javax.sound.sampled.* 库)的结果播放两种声音效果。

而不是完全重写代码以将声音效果移回到调用方法(我想我必须从我的announceWin()方法返回一个状态,然后从playAutomaticTurn()返回这个状态)是否有一个简洁的方法如何判断主调用应用程序是否是Android应用程序?

这样我就可以放置一个 if 或 case 语句并以不同的方式处理声音效果?

例如

if (androidApp) {
playAndroidSoundEffect
} else {
playJavaxSoundEffect();
}

或者是在类开头创建常量声明并为 Java 和 Android 版本使用不同值进行编译的唯一方法?

例如编译 Android 版本(尚未实现 Android 声音)

private static final boolean SOUND = false;

//...

if (SOUND)
playJavaxSoundEffect();

感谢您提供的任何帮助和建议。

最佳答案

在代码周围出现大量 if 是不好的做法,我建议创建捕获平台特定行为的接口(interface),例如

interface SoundService {
playSound(/* ... */);
}

通过这种方式,您可以创建接口(interface)的多个实现,包括为懒惰者提供的简单的 NoOp 实现,并将所有平台特定的代码放在非常容易查看的位置。

关于java - 有没有办法确定 "main"是Android还是Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6374402/

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