是否可以创建一个具有对合作伙伴对象的不可变引用的类,或者它是否必须是var我在创建后分配的类?
例如
class PairedObject (p: PairedObject, id: String) {
val partner: PairedObject = p // but I need ref to this object to create p!
}
Run Code Online (Sandbox Code Playgroud)
或类似地,我如何实例化以下对?
class Chicken (e: Egg) {
val offspring = e
}
class Egg (c: Chicken) {
val mother = c
}
Run Code Online (Sandbox Code Playgroud) 我正在学习阿卡,我试图找出如何让参与者互相交谈(让我们称他们A和B).这不是一个请求/响应情景中,A并B在任何时候都彼此发送消息.
目前我有两个兄弟姐妹演员在两个方向上互相传递信息.他们都是直接创建的ActorSystem.我最初通过ActorRef的A进入的构造B.但我不能传递ActorRef的B到的构造A,因为它不存在,即我不能用这个方法循环引用.
我一直在阅读actorFor,这会让我用它的路径查找一个演员.但是,我对这种设置不满意,因为如果路径发生变化,编译器就不会捕获它.
另一种选择,考虑到每一个演员可以访问到它的父,是从传递信息A,并B到父,然后让家长将消息传递回落到A和B.但是这会将父节点与来回传递的消息类型联系起来.
人们使用什么策略让演员彼此了解?我是否因为通过路径查找演员而过于谨慎?