Scala中的惯用事件引擎

Hug*_*ira 6 events scala

我有一个问题,一些对象根据一些内部逻辑更改其属性.为了简单起见,让我们设想一个RandomSource具有Int名为的公共字段的对象Value.该对象有自己的线程,有时它会更新Value字段.

现在,系统中的其他对象有兴趣收到Value已更新的通知.在C#中,我可以定义对象订阅的伴随委托,以及在更新属性时引发的委托委托.

我的问题如下:我如何在Scala中执行此操作?哪个是最"惯用"的解决方案?

Dan*_*ral 1

观察者仍然是相当标准的,也称为发布者/监听者。您可以自行推出,或者如果您需要异步通知,也可以使用一些基于参与者的解决方案。

在功能方面,这些东西通常是通过功能反应框架来完成的。有 Naftoli 的 Reactive,但Akka也提供了 a Dataflow,这相当于基本概念。

除此之外,这是一个关于 Scala 演变的研究领域,因此您可以确定您会看到更多内容。