将事件驱动系统转换为非偶数驱动系统

时间:2013-10-17 03:53:47

标签: java javascript events event-handling

我们有一个事件驱动的状态机,其中一些事件是外部的(来自我们系统的用户)和内部的(我们自己的代码)。为了简化它,我将使用2个缩写IE(内部事件)和EE(外部事件)

ALGO:

IE-1: change state -> Running
Event IE-1 detected and action taken on event is authenticate.
IE-2: change state -> Authentication success
Event IE-2 detected and action on event is to send reply to client.
EE-3 client replies state -> Closed
Event IE-3 detected and action on event is to release all resources on server.

现在我的建议是将所有内部事件替换为模板函数,并让事件处理仅用于EE。所以新系统将是:

template {

  change state to running.
  authenticate
  change state to auth success
  reply client
}

// Event trigger.

onEvent-closeConnection() {

}

这是正确的做法吗?有什么建议/反馈吗? 这一变化的主要目的是系统变得如此复杂,以至于仅仅查看代码就很难跟踪sequence of control流程。事件处理代码与要执行的操作不在同一文件中。这使得调试更加困难。模板是原子操作。

0 个答案:

没有答案