因此,作为一名电工和程序员,我认为我非常了解 FSM 设计模式。这是:
- 我们有一组
Nodes
, - 每个人都
Node
知道,该做什么,当程序在这个节点时, - 每个
Node
contains references to another chosen nodes
人,并且知道在什么条件下,他应该前往所选择的人。 - 在
event
或after processing
一个节点上,Node proceeds
到下一个选择的节点
我想,这对我来说很清楚。虽然最近,当我实施状态机时,一个人告诉我,它实际上是一个有点修改的责任链(不确定他是否正确)并且,我所做/拥有的是:
- 集合
Nodes
(不代表线性或树结构) - 节点有对象,知道在什么条件下他们应该跳转到哪个节点
- 每个节点都有自己的处理上下文(上下文的某些部分在节点之间共享)。
不幸的是,我担心由于法律问题,我不允许在这里粘贴类图。
另一方面,我们有责任链,我会(据我了解)以以下方式定义,即:
- 我们有一些
ItemToProcess
接口, - 我们有一些
Node
接口, - 节点只有一个下一个节点的引用,
- 每个节点处理
ItemToProcess
并将处理过的一个转发给nextNode
据我了解:
- 我们使用
Chain Of Responsibility
, 我们希望每个节点处理(或至少尝试处理)一个项目 - 责任链代表流程的连续和持续执行
- 我们
StateMachine
用来表示图 - 我们用于
StateMachine
执行计算,计算的顺序或种类可能因某些事件而异。
我想请您确认我对这些设计模式的理解,或者告诉我我在哪里理解错误。