nor*_*tpy 14 state design-patterns state-machine state-diagram
更新:
状态模式可能是解决此问题的错误方法.因此,欢迎任何其他模式.基本上我正在寻找一种方法来为每个州提供保护条件,同时拥有干净且可维护的代码.guard conditions如果条件不满足,前端侧路由系统如emberjs,ui-router和react-router如何实现以避免进入特定状态?
我想通过使用State Pattern来实现一个有限状态机,但我无法绕过它.简而言之就像:
If error -> error state
If A && B && C -> second state
If only A -> first state
Run Code Online (Sandbox Code Playgroud)
在任何状态下,出错时,我们都会进入错误状态.输入(事件)A,B和C可能以任何顺序到达,但如果它们全部通过,我们将进入第二状态.如果只有输入A适用,那么我们进入第一状态.
以下状态图取自Martin Fowler的领域特定语言书.

在描述中他说:
格兰特小姐在她的卧室有一个秘密隔间,通常是锁定和隐藏的.要打开它,她必须关上门,然后打开胸口的第二个抽屉,按顺序打开她的床头灯.完成这些后,秘密小组将解锁,以便她打开.
我要强调,这turning light并opening 2nd drawer在发生任何顺序.与A,B和C相同
基于@SQLPolice的评论和书,我画了这个:

但问题是,我可能有(A && B && C && D && D && E).在这种情况下,拥有所有组合临时状态将是麻烦的.