Scala 如何限制对本地参与者的访问
我正在为类成员搜索像Scala 如何限制对本地参与者的访问,scala,akka,actor,Scala,Akka,Actor,我正在为类成员搜索像private这样的封装方法。我想让一个参与者提供一些常见的无害消息和特权,它们可能以不希望的方式改变状态。我还可以构建代理角色,它将根据访问策略过滤消息。但是这两个参与者仍然可以通过完整路径actor ref访问。如何使某些actor ref私有化,只有其父级才能访问这些actor ref?只要使用ActorSelection知道路径,任何其他参与者都可以访问任何actor 如果您想限制某些消息,可以使用诸如package private之类的方法 假设您有Dangerou
private
这样的封装方法。我想让一个参与者提供一些常见的无害消息和特权,它们可能以不希望的方式改变状态。我还可以构建代理角色,它将根据访问策略过滤消息。但是这两个参与者仍然可以通过完整路径actor ref访问。如何使某些actor ref私有化,只有其父级才能访问这些actor ref?只要使用ActorSelection
知道路径,任何其他参与者都可以访问任何actor
如果您想限制某些消息,可以使用诸如package private之类的方法
假设您有DangerousActor
,并且您只希望在同一个包中定义的actor能够发送DangerousMessage
,但是您也有SafeMessage
,并且您可以接受actor系统中发送该消息的任何其他人
package dangerous
object DangerousActor {
private[dangerous] case object DangerousMessage
case object SafeMessage
}
case DangerousActor extends Actor {
import DangerousActor._
def receive = {
case DangerousMessage =>
case SafeMessage =>
}
}
只有在
危险
包中定义的参与者才能引用危险消息
只要使用参与者选择
知道路径,任何参与者都可以被任何其他参与者寻址
如果您想限制某些消息,可以使用诸如package private之类的方法
假设您有DangerousActor
,并且您只希望在同一个包中定义的actor能够发送DangerousMessage
,但是您也有SafeMessage
,并且您可以接受actor系统中发送该消息的任何其他人
package dangerous
object DangerousActor {
private[dangerous] case object DangerousMessage
case object SafeMessage
}
case DangerousActor extends Actor {
import DangerousActor._
def receive = {
case DangerousMessage =>
case SafeMessage =>
}
}
只有在
危险
包中定义的参与者才能引用危险消息
只要使用参与者选择
知道路径,任何参与者都可以被任何其他参与者寻址
如果您想限制某些消息,可以使用诸如package private之类的方法
假设您有DangerousActor
,并且您只希望在同一个包中定义的actor能够发送DangerousMessage
,但是您也有SafeMessage
,并且您可以接受actor系统中发送该消息的任何其他人
package dangerous
object DangerousActor {
private[dangerous] case object DangerousMessage
case object SafeMessage
}
case DangerousActor extends Actor {
import DangerousActor._
def receive = {
case DangerousMessage =>
case SafeMessage =>
}
}
只有在
危险
包中定义的参与者才能引用危险消息
只要使用参与者选择
知道路径,任何参与者都可以被任何其他参与者寻址
如果您想限制某些消息,可以使用诸如package private之类的方法
假设您有DangerousActor
,并且您只希望在同一个包中定义的actor能够发送DangerousMessage
,但是您也有SafeMessage
,并且您可以接受actor系统中发送该消息的任何其他人
package dangerous
object DangerousActor {
private[dangerous] case object DangerousMessage
case object SafeMessage
}
case DangerousActor extends Actor {
import DangerousActor._
def receive = {
case DangerousMessage =>
case SafeMessage =>
}
}
只有在危险
包中定义的参与者才能引用危险消息