相关疑难解决方法(0)

实例化不可变配对对象

是否可以创建一个具有对合作伙伴对象的不可变引用的类,或者它是否必须是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)

scala object immutability

26
推荐指数
1
解决办法
1963
查看次数

Akka actorFor vs传递ActorRef

我正在学习阿卡,我试图找出如何让参与者互相交谈(让我们称他们AB).这不是一个请求/响应情景中,AB在任何时候都彼此发送消息.

目前我有两个兄弟姐妹演员在两个方向上互相传递信息.他们都是直接创建的ActorSystem.我最初通过ActorRefA进入的构造B.但我不能传递ActorRefB到的构造A,因为它不存在,即我不能用这个方法循环引用.

我一直在阅读actorFor,这会让我用它的路径查找一个演员.但是,我对这种设置不满意,因为如果路径发生变化,编译器就不会捕获它.

另一种选择,考虑到每一个演员可以访问到它的父,是从传递信息A,并B到父,然后让家长将消息传递回落到AB.但是这会将父节点与来回传递的消息类型联系起来.

人们使用什么策略让演员彼此了解?我是否因为通过路径查找演员而过于谨慎?

scala akka

16
推荐指数
1
解决办法
5420
查看次数

标签 统计

scala ×2

akka ×1

immutability ×1

object ×1