谁能给我提供一个有限状态机设计模式的实际实现?

本文关键字:设计模式 有限状态机 一个 实现 | 更新日期: 2023-09-27 18:09:28

这里是一个简短的描述:我正在开发一个MVC应用程序,它将管理用户请求授予。在用户插入必要的信息来创建他的需求(这是我的应用程序中的主要对象)之后,他的请求在被接受之前要经历几个状态。我想知道在这种情况下,哪种设计模式是最好的。

谁能给我提供一个有限状态机设计模式的实际实现?

如果您想要跟踪请求的状态并能够控制状态转换,那么有限状态机(FSM)将是一个很好的选择。

定义状态和状态之间的转换。指定初始状态。在每个请求中添加这样一个FSM。根据需要触发转换。您可以为转换添加元数据,例如授权需求(谁应该能够执行此转换)。

每个状态都可能有一个入口和一个退出函数来执行特定的操作,例如记录转换,转发下一个检查的请求,或者在"批准"或"拒绝"状态下触发回复。

为了为解决方案选择最佳的设计模式,需要更多的信息,例如:

    网络基础设施是什么样的?我们期望多少服务器负载?
  1. 状态之间的转换是手动的还是更多的事件驱动和自动的?
  2. 您是否需要跟踪和审核各州之间的信息流?
  3. …和截止日期。

…等

考虑到你所描述的,最安全的路线肯定需要服务总线方法和工作流引擎。

现在,有很多方法可以实现这一点,问题1真的很重要,但是如果你只有一个web服务器,没有其他东西,你可以看看像Hangfire这样的工具,它可以在ASP中工作。. NET MVC栈。

Hangfire也有一个很酷的仪表盘:)