为什么我们在akka中创建Actors和消息作为静态类?

时间:2017-03-07 04:30:35

标签: java akka

我正在学习Akka,在akka文档中,他们已经为演员和消息使用了静态类,所以我想知道为什么我们在akka中创建Actors和消息作为静态类。这就是我所知道的: - 我们无法创建toplevel static类,因为我们只能创建一个内部静态类,而内部静态类实例不会链接到特定的封闭类实例。这意味着多个实例共享相同的静态类实例。因此,如果我们创建静态的Actors和消息,那么每个静态类只有一个实例。

1 个答案:

答案 0 :(得分:1)

您无需将消息创建为静态类。

有两个主要原因:

其中一个是士力架所提到的,即我们希望使消息不可变,并且通过静态类在Java中更容易实现。您可以通过将所有字段设置为私有和/或最终字段来完成此操作,但这可能会使序列化/反序列化更复杂(例如,如果您使用Jackson,则为@JsonCreator)。

第二个是我将消息声明为接受它们的actor的内部类,你在两者之间建立了一个语义关系,这使得更容易知道哪个actor接受了什么消息。

但您可以轻松忽略所有这些建议,并将它们构建为普通类,并且您自己确保它们不会被其他任何人修改。