akka_Akka笔记–有限状态机– 1

akka

最近,我有机会在工作中与Akka FSM一起玩了一些非常有趣的用例。 API(实际上是DSL)非常棒,整个体验令人赞叹。 这是我尝试记录有关使用Akka FSM构建有限状态机的注释。 作为示例,我们将逐步完成构建(有限)咖啡自动售货机的步骤。

为什么

我们知道,普通的香草Akka演员可以使用“变得/变得不受欢迎”来切换其行为。 那么,为什么我们需要Akka FSM? 简单的Actor不能只是在州之间切换并表现出不同的行为吗? 是的,可以。 但是,尽管Akka的成败变得通常足以切换涉及几个状态的Actor的行为,但是构建具有多个状态的State Machine很快会使代码难以推理(甚至更难以调试)。

毫不奇怪,如果我们的演员中有两个以上的 ,流行的建议是切换到Akka FSM。

什么是Akka FSM

为了进一步扩展,Akka FSM是Akka构造有限状态机的方法,它简化了Actor在各个州和州之间转换的行为管理。

在幕后,Akka FSM只是Actor扩展的特征。

trait FSM[S, D] extends Actor with Listeners with ActorLogging

这种FSM特性提供的是纯魔术,它提供了包裹常规Actor的DSL,使我们能够集中精力更快地构建手头的状态机。

换句话说,我们的常规Actor仅具有一个receive函数,而FSM特性包装了一种receive方法的复杂实现,该实现将调用委托给处理处于特定状态的数据的代码块。

我个人注意到的另一件好事是,编写后,完整的FSM Actor仍然看起来干净且易于阅读。

好了,让我们看一下代码。 就像我说的,我们将使用Akka FSM制造一台咖啡自动售货

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值