Daw*_*dPi 7 design-patterns state-machine chain-of-responsibility
因此,我是一名电工和程序员,我认为我非常了解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用来执行计算,计算的顺序或种类可能因某些事件而异.我想请你确认我对这些设计模式的理解,或者告诉我在理解上的错误.
你的理解是正确的。
我想补充一点,FSM 中的节点是不同的状态。当您切换到不同的节点时,您会更改 state。您可以连续多次调用同一个状态/节点。
责任链没有不同的状态。正如您所说,链中的每个节点都尝试处理一个对象,如果一个节点成功处理了该对象,那么通常链会停止。
责任链的常见用途是查找用于确定用于给定输入(例如文件类型或扩展名)的 Handler 或在类路径或资源定位器中查找项目的查找。您可以将这些类型的操作视为:
[Node 1]
"-Do you know what this is?"
-No
[Node 2]
"-Do you know what this is?"
-No
[Node 3]
"-Do you know what this is?"
-Yes!
Run Code Online (Sandbox Code Playgroud)
完毕