根据另一个事件的结果运行不同的事件



我正在制作一个 API,我遇到了这个问题,在事件完成后,如果已指定,另一个事件将运行。

为此,我有一个构建器来配置事件,它有一个"链"方法,允许您一个接一个地链接事件。我的问题是事件可以以 4 种不同的方式结束:完成、取消、停止重复和计时器过期。我希望能够告诉"chain"方法根据上一个事件的结束方式链接不同的事件,但我也想将一个事件设置为另一个事件的几个末端。

我虽然使用了一个枚举和一个带有事件的可能结束和一个"CUSTOM",这将允许我根据前一个事件的结尾指定我想要运行的新事件,例如,如果事件 A 以完成结束或取消运行事件 B,如果不运行事件 C。但是,我被告知枚举中的所有元素必须具有相同的方法,所以我的问题是:我该怎么做?

枚举表示一组预先确定的有限项目,例如一周中的几天或一年中的几个月,或者可能是可接受的选择的子集; 有无限的颜色,但可能只有 16 种你正在处理。

在这种情况下,表示可能的事件终止状态的枚举是有意义的

public enum EventTermination {
FINISH,
CANCEL,
STOP,
TIMER,
CUSTOM
}

但是枚举的工作不是"允许我根据前一个事件的结尾指定我想要运行的新事件"——这将是一个类的工作,可能是你的 Event 类,每个实例都将保持一个 EventTerminate 状态,也许在该状态 == CUSTOM 的情况下,该类的实例将保存下一个要运行的事件。

使用接口或可能的许多接口(可能在层次结构中(可以为您提供可用方法的可变性,并且可能还有一个事件层次结构。

有了这个,我认为这个问题不太适合Stackoverflow,因为它不能有一个明确的或"正确"的答案,甚至不能有一组答案。
这个问题可能更适合软件工程StackExchange,但请阅读他们的帮助中心,了解那里的预期和不期望的内容。

最新更新