- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用无状态框架 ( https://code.google.com/p/stateless/ ) 在我的应用程序中对有限状态机进行建模。有些状态应该执行一些逻辑,然后立即移动到下一个状态。我想知道像下面这样这样做是不是一种好习惯:
var machine = new StateMachine<State, Trigger>(State.Idle);
machine.Configure(State.StateA)
.OnEntry(() =>
{
DoSomeStuff();
_machine.Fire(Trigger.TriggerB); // move to StateB
});
这是好的 FSM 设计吗?如果没有,什么是更好的方法?我试图实现的想法是让某些状态自动将机器推进到下一个状态,而无需一些外部代码等待 DoSomeStuff() 完成,然后触发机器进入下一个状态。
最佳答案
您似乎在谈论状态插入与状态拉动。两种方法都有效,一种方法在某些情况下可能更有效。
采用状态推送方法非常好,其中一个状态执行一些工作并调用转换。
关于c# - 我应该触发触发器以从有限状态机中的 OnEntry() 方法更改状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23827054/
我正在使用无状态框架 ( https://code.google.com/p/stateless/ ) 在我的应用程序中对有限状态机进行建模。有些状态应该执行一些逻辑,然后立即移动到下一个状态。我想知
我正在运行 .NET 4.0 Web 应用程序(不是网站)和 PostSharp 1.5。我无法使用 OnMethodBoundaryAspect 基类获取要执行的 OnEntry 覆盖方法。这是一些
我希望方面根据如下条件退出方法调用: [AttributeUsage(AttributeTargets.Method)] public class IgnoreIfInactiveAt
刚刚从 nuget 包安装了 Postsharp 2.1,然后安装了 Phil Haack 的 NullGuard 包。 当我在类或方法级别添加 [EnsureNonNullAspect] 方面时,我
我想访问我们日志方面类中的基类成员。我有一个基本 Controller ,该 Controller 由测试 Controller 继承,在测试 Controller 中我实现了 AOP Aspect。
我是一名优秀的程序员,十分优秀!