2016-12-15 6 views
1

Akkaに新しいので、私はPropsのメリットを簡単に理解するための助けが必要です。一般的なOOスタイルのオブジェクト作成の問題は何ですか?AkkaでPropsが俳優の創造にもたらす効果は?

私が知っているのは、これは、PROPのクラスとプロパティを工場に送信し、あなたのためにアクターを作成するファクトリパターンに従うということです。 [間違っているなら私を訂正する]?

しかし、私は必要性を見逃し、私はこれが基本的であることを知っています。これは私のジレンマです。

これはアナロジー/コードの可能性があることを理解できますか?

答えて

2

俳優を作成するこの方法には2つの利点があります。

Actorオブジェクトが作成されると、それもアクターシステムに正しく登録されていることを保証します(監視する親アクターが必要です。ディスパッチャーによってプッシュメッセージが取得されるなど)。 )。だから、タイプActorのオブジェクトで終わることはありませんが、実際にはアクターシステムの外に存在します。

もう一つはactorOf(props: Props): ActorRefメソッドの定義に表示されている:それは実際Actorを返さない、むしろActorRef(及びActorRefがいずれかの下にあるActorへの参照を公開しません)。

これは、アクター自体に直接アクセスすることは決してなく、非同期メッセージを送信するのではなく、アクターのメソッドを直接呼び出してAkka APIを迂回することはできないことを意味します。 Actorを自分で作成した場合は、明らかにアクタに直接アクセスできるため、アクターモデルの保証を破るような方法でアクセスするのが簡単です。

-1

私には利点もないと思います。 実際には、私はAPIを理解するために配線されています。

はなぜ、これを好きではない:

ActorRef actorA = system.getRefByCreateActor(ActorA.class, Props.create(......)); 

NoSender.tell(actorA, message); 
関連する問題