java - 方法中的条件通常已经得到满足

标签 java conditional-statements

虽然这个问题不是特定于 Java 的,但专门针对 Java 的解释会很有帮助。我的问题是我已经完成了几个程序,并且还操纵了预先存在的游戏,我发现经常会检查一些 99% 或更多的时间与该人想要做的事情无关的事情.

假设我有一个成就系统,你必须做一些事情才能获得成就,比如跳舞。人们一直在跳舞,他们很久以前就获得了这一成就,并且刚刚连续跳舞了几个小时。每次他们跳舞时,都会检查他们是否完成了成就,如果没有完成,他们就会获得成就。 一旦某些内容不再适用于某个人,我该如何绕过检查?

最佳答案

您可以使用事件总线之类的东西。您的 dance 方法将创建一个事件,该事件将被推送到事件总线中。最初,会有部分代码用于监听舞蹈事件。一旦监听器被舞蹈事件触发,它将取消注册自己作为舞蹈事件的监听器。

编辑: 类似的想法,但不使用 EventBus。

interface DanceEventHandler {
    void handle(DanceEvent e);
}

假设每个用户都有一个 User 对象。

class User {
    ....
    DanceEventHandler danceEventHandler;
}

最初,您可以使用对舞蹈事件执行某些操作的实现。

class DefaultDanceEventHandler {
    void handle(DanceEvent e) {
        //Give achievement to the user
    }
}

一旦用户已经获得成就,请使用不同的实现替换用户中的danceEventHandler

class AfterAchievementDanceEventHandler {
    void handle(DanceEvent e) {
        //Do nothing
    }
}

关于java - 方法中的条件通常已经得到满足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31354612/

相关文章:

Java ImageIO 异常

java - 如何使用 Java 使用 XSL 转换 XML

java - 位置层次数据结构

javascript - "Remove"评估为 true 时的测试条件

haskell - Haskell 守卫/模式匹配什么时候被认为是不详尽的?

java - 读取另一个进程正在写入的文件

java - 将可序列化对象传递给挂起的 Intent

python - Pyspark 数据帧过滤器 OR 条件

Java 扫描器添加可变条件

get - 如果资源是在初始请求中获取的,是什么让条件 GET 为 "conditional"?