Tengo un actor que está delegando llamadas a un singleton con estado. El singleton es estable porque mantiene un mapa de objetos. Este objeto singleton se usa solo en el actor y en una clase (no actor) donde estoy recuperando un objeto en este mapa (así que solo lectura segura de subprocesos).Usar singletons en akka scala actor
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) }
¿Puede haber algún efecto secundario/problema? Gracias
He resuelto poner un mapa en el actor y consultar al actor. Entonces, el singleton se ha incorporado al actor y no expone nada. Estoy empezando a pensar que los actores y la inyección de dependencia no son buenos amigos. ¿Estoy en lo cierto? – Matroska
DI funciona bien, incluso tenemos una integración de Spring y una integración de Guice. –
Una breve explicación haría de esto una respuesta mucho más útil. ¿Cuál es el razonamiento detrás de no seguir el enfoque en la pregunta? ¿Por qué es inferior a, por ejemplo, encapsular el mapa en el actor o usar Agentes? – mahonya