虽然这个问题不是特定于 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/