Ho provato a leggere la documentazione di Akka per scoprire la differenza esatta tra attori digitati e non tipizzati. Quando usare cosa? Non sono sicuro di cosa mi manchi. Qualcuno può indicarmi qualcosa di rilevante o fornire una risposta a questa domanda qui?Qual è la differenza tra gli attori tipizzati e non tipizzati in Akka? Quando usare cosa?
risposta
UntypedActor è semplicemente il nome per l'attore, ma come l'API Java.
Sono molto sorpreso che la documentazione non è sufficiente:
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 differenza è che TypedActors hanno un'interfaccia statica, e le invocazioni dei metodi su tale interfaccia si trasforma in messaggio invia. UntypedActors può ricevere qualsiasi messaggio.
Spero che questo aiuti.
Cheers, √
Actors (Untyped)
Per gli attori (Scala) per ricevere messaggi, essi devono mixin il tratto dei consumatori. Ad esempio, la seguente classe di attori (Consumer1) implementa il metodo endpointUri, che è dichiarato nel tratto Consumer, al fine di ricevere messaggi dal file: data/input/attore Camel endpoint. Gli attori Untyped (Java) devono estendere la classe astratta UntypedConsumerActor e implementare i metodi getEndpointUri() e onReceive (Object).
Actors (Typed)
Gli attori digitati possono anche ricevere messaggi dagli endpoint Camel. A differenza degli attori (non tipizzati), che implementano solo un singolo metodo di ricezione o onReceive, un attore tipizzato può definire diversi metodi (elaborazione di messaggi), ognuno dei quali può ricevere messaggi da un diverso endpoint Camel. Affinché un metodo typed actor venga esposto come endpoint Camel, è necessario annotarlo con l'annotazione @consume. Ad esempio, il seguente attore consumatore digitato definisce due metodi, foo e bar.
Mithun, la parte che riguarda gli attori che hanno bisogno di mixin il tratto dei consumatori, al fine di ricevere i messaggi è di circa * Camel * messaggi, giusto? Naturalmente Akka Actor può ricevere normali messaggi Akka, con o senza Consumer. – AmigoNico
@AmigoNico: Giusto !! –
attori non tipizzate rispondono ai messaggi inviati, mentre gli attori tipizzati rispondere alle chiamate di metodo (i valori dei parametri sono i messaggi).
Il modello di attore digitato viene utilizzato per definire contratti rigidi per gli attori che possono rispondere solo al set predefinito di messaggi. In questo caso, ogni messaggio non deve essere incapsulato come un oggetto; gli attori tipizzati ci consentono di definire metodi separati che accettano più input come definito dal contratto. Nel linguaggio di Java, gli attori tipizzati forniscono l'interfaccia Java nel mondo orientato agli oggetti. [1]
[1] Akka Essentials
Akka attori non tipizzati "non comporre" e "non sono utilmente digitato".
Questo sconfigge la stessa ragione per cui usiamo Scala: è il potere di programmazione funzionale. Vedere http://noelwelsh.com/programming/2013/03/04/why-i-dont-like-akka-actors/ per approfondire questa mentalità.
Inoltre, vedere i tentativi di migliorare questo a Scala per abbinare il modo Haskell.
http://letitcrash.com/post/40198993865/makkros-first-step-towards-typed-channels http://letitcrash.com/post/45188487245/the-second-step-akka-typed-channels
sembra essere ancora in fase sperimentale in Akka o addirittura caduto - non è chiaro.
Questa idea di canali digitati fa un sacco di senso, perché si verificano problemi simili quando si cerca di costruire il tipo controllato dati (Analytics) condutture.
Akka tipizzati sembra essere una grande evoluzione per un modello di programmazione più sicura: https://opencredo.com/akka-typed/
- 1. Come mescolare attori dattilografati e non tipizzati?
- 2. Differenza tra Linq a Sql, Linq, Dataset tipizzati, ADO.NET
- 3. sottoinsiemi tipizzati di enumerazioni
- 4. È possibile creare riferimenti web.config fortemente tipizzati?
- 5. Qualcuno può chiarire la differenza chiave tra Entity Framework e Dated Set tipizzati?
- 6. Akka. Come illustrare gli attori in UML?
- 7. terminano correttamente gli attori akka in scala
- 8. mvc4 raggruppamento bundle fortemente tipizzati
- 9. Modelli tipizzati in stile CodeRush per ReSharper
- 10. Come condivido il comportamento tra gli attori di Akka?
- 11. Qual è la differenza tra gli eventi "mouseup" e "clic"?
- 12. Attori distribuiti in Akka
- 13. Differenza tra Java Concurrency, Akka e RxJava?
- 14. Qual è la differenza tra l'aspettativa e quando in $ httpBackend
- 15. Qual è la differenza tra dict() e {}?
- 16. Qual è la differenza tra `##` e `hashCode`?
- 17. Qual è la differenza tra gli eventi Control.Enter e Control.GotFocus?
- 18. Differenza tra Actorref.tell e inbox.send in Akka
- 19. Qual è la differenza tra Verilog! e ~?
- 20. Java Generics jolly vs utilizzo tipizzati Generics
- 21. È possibile ottenere binding fortemente tipizzati in WPF/XAML?
- 22. prefisso modello quando si utilizza aiutanti HTML tipizzati
- 23. DAL "DataSet tipizzati" o Oggetto aziendale personalizzato
- 24. Qual è la differenza tra ("") e (null)
- 25. Qual è la differenza tra puro e impuro in haskell?
- 26. Qual è la differenza tra dim e set in vba
- 27. Esistono linguaggi di script incorporati e tipizzati in modo statico?
- 28. In Linq, qual è la differenza tra .FirstOrDefault e .SingleOrDefault
- 29. Qual è la differenza tra $ get e $ find in JavaScript?
- 30. Set di dati fortemente tipizzati e modifiche dello schema
Perché la gente di solito preferisce usare l'attore non tipizzato rispetto a quelli digitati? Quelli tipizzati sembrano rendere il codice più leggibile - meno "instanceof"/"caso" - coinvolti. Più orientato agli oggetti come. Più digitati come Java e lingue scala sono. – ses
La mia opinione: usando un attore non tipizzato devi filtrare i messaggi per attore. Usando l'attore dattilografato devi legare solo il messaggio esatto. – alerya
attori digitati inducono ad alta accoppiamento e che non permette diventato/non-venuto (che è il modo originale e puro funzionali di lavorare con lo stato interno attori), maggiori informazioni - http://letitcrash.com/post/19074284309/when-to -use-typedactors – dk14