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