2012-01-10 12 views
0

Akka型付きアクターは、JDKプロキシーを使用して2つの部分に分けて作成されます。プロキシーは指定されたインターフェースの製品であり、実装はバッキング管理インスタンスを形成します。しかし、この構成手段は、TypedActorが複数の型(インタフェース)を実装するのを防ぎます。複数のインタフェースを持つプロキシでTypedActorsを作成することはAkkaでも可能ですか?

私は、Akka 2.0がこれを変更しようとしているところを読んだと思っていました。誰にもこれに関する考え方や回避策はありますか?この段階ではスカラではなく純粋なJavaでAkkaを使用しています

答えて

1

以前の型付きアクターは、アスペクトウィービングを使用して実装されているため、JDKプロキシではありません。 2.xで

型付き俳優JDKプロキシに基づいており、あなたは基本的にJDKによってsupprtedされると多くのインターフェイスを使用することができます。Supercharging

+0

Viktorに感謝します。このスーパーチャージはJava APIでも可能ですか? – magicduncan

+0

いいえ、それは見落としです、私は切符を開きます。 –

+0

Btwでは、プロキシするインターフェイスを拡張し、そのクラスをtypedActorOfの「インターフェイス」に提供するクラスを作成することで、期待した結果を得ることができます。 typedActorOfはそのクラスを見て、それがインターフェイスクラスではないことを見て、それがすべてのインターフェイスを抽出し、それらをプロキシします。 –

0

俳優が(When_to_use_Typed_Actorsを参照してください最高ではありません型付き公式見解があります)。可能であれば、型付きのメッセージで型なしのアクターを使用してみてください。

我々は種類のメッセージを使用されています:

class Contact<T> 
class Signal<T>(contact:Contact<T>, data:T) 

接触のインスタンスが等しいかどうかを確認することは容易です。 (if-elseif-elseif)通常、すべての入力を処理するには、コンタクトハンドラのマップで十分です。

厳密に型付けされた信号のアイデアは、SynapseGridライブラリでさらに開発されています。型付きハンドラと型付きの連絡先を関連付けるBuilderを定義します。

関連する問題