我写了一个Akka基本演员,可以处理一些常见的消息。我想通过扩展基执行元(而不是通过基执行元的组合),在子执行元中重用这个基本行为。
我在前面的问题中看到过几种做法。它们都是有效的,但也可以改进:
//This is the base-actor that implements the common behavior
trait BetterActor extends Actor {
abstract override def receive = {
super.receive orElse { case _ => println("Missing pattern!") }
}
}
//This is the actor that implements the additional behavior.
//I actually wanted to extend BetterActor. It was not possible.
class MyActor extends Actor {
def receive = {
case i: Int =>
println(s"Yay!!! Got $i")
}
}
下面是两种可供选择的方法,我可以创建子执行元的实例,它结合了常见行为和附加行为:
//1.
val myBetterActor = system.actorOf(Props(new MyActor with BetterActor), "myBetterActor")
//2.
class MyBetterActor extends MyActor with BetterActor
val myBetterActor = system.actorOf(Props[MyBetterActor], "myBetterActor")
最后,我可以通过以下方式调用子参与者:
myBetterActor ! 2
myBetterActor ! "a"
我的实现存在的问题:
就像我之前说过的,我更喜欢在定义子执行元时混合基执行元。当我尝试创建子执行元的实例时就不会。
附注。令人着迷的是,这个框架的设计者并不认为有必要使这个公共需求易于完成。
我想,只要您不试图用BetterActor覆盖行为,您可以尝试如下所示:
trait BetterActor extends Actor {
override def unhandled(message: Any): Unit = message match {
case e: CommonMessage => println("COMMON!")
case e => super.unhandled(e)
}
}
class MyActor extends BetterActor {
override def receive = {
case i: Int => println(s"Yay!!! Got $i")
}
}
问题内容: 我正在尝试扩展Python,以用于越野比赛的结果。我想从格式为string的对象构造一个对象。我可以使用工厂设计模式和注释来完成此操作。我将如何通过覆盖和/或完成相同的任务? 使用下面的代码,构造一个对象会引发TypeError。请注意,未调用,因为未打印。 这是错误: 如果将代码从移至,则会得到以下结果。注意这次,输出显示我的函数被调用了。 问题答案: 显然,对象是不可变的,这意味着
我正在尝试为ApacheFlink导入ScalaAPI流扩展,如中所述https://ci.apache.org/projects/flink/flink-docs-master/apis/scala_api_extensions.html 但是,我的ScalaIDE抱怨以下消息:对象扩展不是包的成员org.apache.flink.streaming.api.scala 我使用的是scala 2
本文向大家介绍ASP.NET MVC HtmlHelper如何扩展,包括了ASP.NET MVC HtmlHelper如何扩展的使用技巧和注意事项,需要的朋友参考一下 一、ASP.NET 扩展方法三要素 (1)、静态类 可以从下图看出,InputExtension首先是一个静态类; (2)、静态方法 既然是静态类,那么其所有的方法必然都是静态方法,例如:public static MvcHtmlS
我想制作一份扩展的副本,作为我自己扩展的基础。我如何克隆一个TYPO3扩展,以同样的行为开始我自己的扩展。我必须更改哪些文件和参数?
Azure函数的缩放文档对Azure函数如何决定何时添加更多应用程序实例的详细信息有点了解。 例如,我有一个由Github网络钩子触发的函数。10,000人同时提交到Github repo(没有合并冲突;)),Github在很短的时间内调用我的函数10,000次。 我能期待发生什么?具体来说, Azure函数会限制webhook调用吗?i、 例如,如果我的函数应用程序处于高负载状态,Azure函数
在我的项目中,我使用预定义的注释: 的源代码: 我想编写自定义注释,它将与使用(Secure.class)的