一部のイベントが外部 (システムのユーザーから) および内部 (独自のコード) であるイベント ドリブン ステート マシンがあります。簡単にするために、IE (内部イベント) と EE (外部イベント) の 2 つの頭字語を使用します。
アルゴリズム:
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
この変更の主な目的は、システムが非常に複雑になり、コードを見ただけではフローを追跡することが難しくなったことです。イベント処理コードが、実行するアクションと同じファイルにありません。これにより、デバッグが困難になりました。テンプレートはアトミック操作です。