是否可以在Akka中创建具有多个接口代理的TypedActors?

时间:2012-01-10 17:02:41

标签: akka

Akka Typed使用JDK代理创建两部分,其中代理是指定接口的产品,实现形成支持托管实例。但是,这种构造方法会阻止TypedActor实现多个类型(接口)。

我以为我读过Akka 2.0会改变它的地方。有没有人对此有任何想法,或如何解决?仅供参考,我在纯Java中使用Akka,而不是在现阶段使用Scala

2 个答案:

答案 0 :(得分:1)

2.0之前的Typed Actors是使用纵横编织实现的,因此不是JDK代理。

2.x中的Typed Actors基于JDK代理,您基本上可以使用JDK所支持的接口:Supercharging

答案 1 :(得分:0)

有一种官方观点认为,Typed演员不是最好的(见When_to_use_Typed_Actors)。如果可以尝试使用带有类型消息的Untyped actors。

我们一直在使用那种消息:

class Contact<T>
class Signal<T>(contact:Contact<T>, data:T)

联系实例很容易检查是否相等。 (if-elseif-elseif)通常,联系处理程序的映射足以处理所有输入。

SynapseGrid库中进一步开发了严格类型信号的概念。它定义了Builder,将类型化处理程序与键入的联系人关联起来。