当前位置: 首页 > 知识库问答 >
问题:

AbstractActor、UntyedActor和akka中的抽象行为有什么区别?

空佐
2023-03-14

这里是Akka新手,我有三个不同的示例,这三个示例都使用非常不同的类来实现一个actor,

抽象演员:https://www.baeldung.com/akka-with-spring

非类型转换器:https://www.baeldung.com/akka-actors-java

抽象行为:https://doc.akka.io/docs/akka/current/typed/guide/tutorial_1.html

前两个看起来非常简单明了,类似于我在Erlang上使用和看到的参与者模型实现。官方文档中的一个看起来最复杂。

所以我有点困惑,应该在什么时候使用哪一个?

共有1个答案

公孙令秋
2023-03-14
  • akka.actor.typed.javadsl.抽象行为是面向参与者的新的“类型化”JavaAPI,它稍微冗长一些,但为您提供了更好的类型安全性,以换取这种激烈。我们建议从Akka开始的新项目从2.6开始使用它并继续前进。
  • akka.actor.AbstractActor是演员的“经典”(Akka 2.6之前)JavaAPI,它在Java8中添加了对Lambdas的支持。它不会因为新的API而消失,但会存在很长一段时间,因为许多系统都是使用它构建的。
  • akka.actor.UntypeActor在Java8之前是一个较旧的JavaAPI,它在Akka 2.5中被弃用,现在(2.6)已被删除。
 类似资料:
  • 据我所知,唯一剩下的区别(除了一些潜在的效率问题之外)是抽象类遵循传统的Java单继承,而接口可以有多继承(或者多实现,如果你愿意的话)。这又引出了另一个问题-- 新的Java8接口如何避免菱形问题?

  • (1)接口 接口使用interface修饰; 接口不能实例化; 类可以实现多个接口; ①java8之前,接口中的方法都是抽象方法,省略了public abstract。②java8之后;接口中可以定义静态方法,静态方法必须有方法体,普通方法没有方法体,需要被实现; (2)抽象类 抽象类使用abstract修饰; 抽象类不能被实例化; 抽象类只能单继承; 抽象类中可以包含抽象方法和非抽象方法,非抽象

  • 问题内容: Java中的封装和抽象之间到底有什么区别?任何简短的例子也将不胜感激。 问题答案: 抽象和封装是两个很好的味道,它们在一起味道很好。 封装 可以最大程度地减少向代码用户展示的内容。该“用户”可以是您代码的其余部分,也可以是使用您发布的代码的任何人。 封装有一定的好处: 代码的用户不依赖于程序中可能更改的部分。当您更改程序时,他们不必更改代码 您可以更好地控制代码和状态在程序生命周期中的

  • 在采访中,我被要求解释抽象和封装之间的区别。我的回答是大致相同的 > 抽象允许我们以最简单的方式表示复杂的现实世界。它是识别一个对象应该具备的相关品质和行为的过程;换句话说,代表必要的特征而不代表背景细节。 封装是一个从外部真实世界隐藏对象所有内部细节的过程。“封装”这个词,就像“封装”成一个“胶囊”。它限制客户端查看实现抽象行为的内部视图。 我想通过以上的回答,面试官确信了这一点,但随后我被问到

  • 我发现他们有同样的限制。 正如我所发现的,这两者之间没有明显的区别,因为它们都实施了相同的限制。我唯一注意到的是继承和实现。 类只能扩展到单个基类 一个类可以实现多个接口。

  • 现在接口也有了一些以体作为抽象类的方法,那么java 8中的抽象和接口有什么区别。