He intentado leer la documentación de Akka para descubrir la diferencia exacta entre los actores tipificados y no pertenecientes. Cuándo usar qué? No estoy seguro de lo que me estoy perdiendo. ¿Puede alguien señalarme algo relevante o dar una respuesta a esta pregunta aquí mismo?¿Cuál es la diferencia entre los actores tipificados y no tipados en Akka? Cuándo usar qué?
Respuesta
UntypedActor es simplemente el nombre de actor, sino como la API de Java.
Estoy muy sorprendido de que la documentación no es suficiente:
Java:
- http://akka.io/docs/akka/1.2/java/typed-actors.html
- http://akka.io/docs/akka/1.2/java/untyped-actors.html
Scala:
La diferencia es que TypedActors tienen una interfaz estática, y las invocaciones de los métodos en que la interfaz se transforma en mensaje envía. UntypedActors puede recibir cualquier mensaje.
Espero que ayude.
Saludos, √
Actors (Untyped)
Para que los actores (Scala) reciban mensajes, deben mezclarlos en el rasgo del consumidor. Por ejemplo, la siguiente clase de actor (Consumer1) implementa el método endpointUri, que se declara en el rasgo del consumidor, para recibir mensajes del punto final del archivo: data/input/actor Camel. Los actores sin cuota (Java) necesitan extender la clase abstracta UntypedConsumerActor e implementar los métodos getEndpointUri() y onReceive (Object).
Actors (Typed)
Los actores tipificados también pueden recibir mensajes de puntos finales de Camel. A diferencia de los actores (sin tipo), que solo implementan un único método de recepción o de recepción, un actor mecanografiado puede definir varios métodos (procesamiento de mensajes), cada uno de los cuales puede recibir mensajes de un punto final de Camel diferente. Para que un método de actor tipeado esté expuesto como extremo de Camel, debe anotarse con la anotación @consume. Por ejemplo, el siguiente actor de consumo tipeado define dos métodos, foo y bar.
Mithun, la parte de actores que necesitan mixin el rasgo del consumidor con el fin de recibir mensajes es de aproximadamente * * Camel mensajes, ¿verdad? Cualquier Akka Actor puede, por supuesto, recibir mensajes Akka ordinarios, con o sin Consumidor. – AmigoNico
@AmigoNico: ¡¡Correcto !! –
actores sin tipo responden a los mensajes enviados, mientras que los actores mecanografiadas responden a llamadas de método (los valores de los parámetros son los mensajes).
Typed Actor Model se utiliza para definir contratos estrictos para los actores que solo pueden responder al conjunto de mensajes predefinidos. En este caso, no es necesario encapsular cada mensaje como un objeto; los actores mecanografiados nos permiten definir métodos separados que aceptan entradas múltiples como se define en el contrato. En lenguaje de Java, los actores mecanografiados proporcionan la interfaz de Java en el mundo orientado a objetos. [1]
[1] Akka Essentials
Akka actores sin tipo "no componer" y "no se escriben de forma útil".
Esto anula la razón por la que utilizamos Scala: es la potencia de programación funcional. Ver http://noelwelsh.com/programming/2013/03/04/why-i-dont-like-akka-actors/ para profundizar en esta forma de pensar.
Además, vea los intentos de mejorar esto en Scala para que coincida con el modo Haskell.
http://letitcrash.com/post/40198993865/makkros-first-step-towards-typed-channels http://letitcrash.com/post/45188487245/the-second-step-akka-typed-channels
parece seguir siendo experimental en Akka o incluso disminuido - no está claro.
Esta idea de canales tipados tiene mucho sentido porque se producen problemas similares cuando se trata de compilar tuberías de datos verificados (analíticos).
Akka con tipo parece que hay una gran evolución a un modelo de programación más seguro: https://opencredo.com/akka-typed/
- 1. Akka y el estado entre los actores en el clúster
- 2. Akka y construido en Scala Actores: ¿Cuál es la diferencia para el uso local?
- 3. ¿Cuál es la diferencia entre 'no en' y 'no existe'?
- 4. ¿Cuál es la diferencia entre LinkedList y ArrayList, y cuándo usar cuál?
- 5. ¿Cuál es la diferencia entre los archivos .lib y .a?
- 6. Python: ¿cuál es la diferencia entre (1,2,3) y [1,2,3], y cuándo debo usar cada uno?
- 7. ¿Cuál es la diferencia entre todos los proyectos y subproyectos
- 8. ¿Prolog es un lenguaje sin tipo? ¿Cuál es la diferencia entre Prolog y los lenguajes tipados dinámicamente?
- 9. En Linq, ¿cuál es la diferencia entre .FirstOrDefault y .SingleOrDefault
- 10. ¿Cuál es la diferencia entre usar MD5.Create y MD5CryptoServiceProvider?
- 11. Cuándo usar actores locales vs remotos?
- 12. ¿Cuál es la diferencia entre usar WorkflowInvoker y WorkflowApplication?
- 13. ¿Cuál es la diferencia entre los métodos iterator y view?
- 14. ¿Cuál es la diferencia entre # import y @class, y cuándo debo usar uno sobre el otro?
- 15. ¿Cuál es la diferencia entre el operador "=" y "==" en Bash?
- 16. En Scala Akka futuros, ¿cuál es la diferencia entre map y flatMap?
- 17. En JavaScript, ¿cuál es la diferencia entre indexOf() y search()?
- 18. En R, ¿cuál es la diferencia entre unlink y file.remove?
- 19. ¿Cuál es la diferencia entre DBI y DBD?
- 20. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 21. Cuál es la diferencia entre $ y jQuery
- 22. ¿Cuál es la diferencia entre ContentControl y ContentPresenter?
- 23. ¿Cuál es la diferencia entre ".equals" y "=="?
- 24. ¿Cuál es la diferencia entre Collection y List en Java?
- 25. Linq: ¿Cuál es la diferencia entre Seleccionar y Dónde
- 26. ¿Cuál es la diferencia entre los datos-dojotype y dojoType?
- 27. ¿Cuál es la diferencia entre 'y "en PHP
- 28. ¿Cuál es la diferencia entre los archivos apklib y jar?
- 29. ¿Cuál es la diferencia entre <% %> y <%=%>?
- 30. ¿Cuál es la diferencia entre Reader y InputStream?
¿Por qué las personas generalmente prefieren usar un actor sin tipo sobre los que están tipeados? Los de tipo mecanografiado parecen hacer que el código sea más legible, menos "instancia de"/"caso" involucrado. Más orientado a objetos como. Más tipeados como los lenguajes Java y scala. – ses
Mi opinión: al utilizar un actor sin tipo, debe filtrar los mensajes del actor. Al usar un actor mecanografiado, tienes que empatar solo para mensajes exactos. – alerya
los actores mecanografiados inducen alto acoplamiento y no permiten convertirse/no ser bienvenidos (que es una forma original y puramente funcional de trabajar con actores internos del estado), más información - http://letitcrash.com/post/19074284309/when-to -use-typedactors – dk14