我有一个演员正在将呼叫委派给有状态的单身人士。单身人士是有状态的,因为它保持着物体的地图。这个单例对象只用在actor和一个类(不是actor)中,我在这个map中检索一个对象(所以只是线程安全读取)。在阿卡·斯卡拉演员中使用单身人士
class MyActor extends Actor{
def receive()={
case ACase => singleton.amethod()
case BCase => singleton.bmethod()
}
}
val singleton = new MyActorLogic
class MyActorLogic{
val map:Map[String, Object] = Map()
def amethod()=//alter the map
def readMap(value:String) = map(value) }
会有任何副作用/问题吗? 感谢
我已经解决了将地图放入演员和查询演员。所以这个单身人士已经被纳入演员,并且不会暴露任何东西。我开始认为演员和依赖注入不是好朋友。我对吗? – Matroska 2011-03-04 16:12:04
DI工作得很好,我们甚至有一个Spring集成和一个Guice集成。 – 2011-03-05 00:06:13
简单的解释会使这个更有用的答案。在问题中不遵循方法的原因是什么?为什么它不如说,封装在演员地图或使用代理? – mahonya 2015-09-18 16:56:11