2017-03-07 1 views
0

私はAkkaを学び、akkaドキュメントではアクターとメッセージに静的クラスを使用していますので、アクターとメッセージを静的クラスとして作成する理由を知りたいのです。これは私が知っていることです:内部静的クラスのみを作成することができ、内部静的クラス・インスタンスは、特定の囲むクラス・インスタンスにリンクされていないためです。これは、複数のインスタンスが同じ静的クラスインスタンスを共有することを意味します。したがって、Actorsとメッセージstaticを作成する場合、静的クラスごとに1つのインスタンスしか存在しません。アクターとメッセージをakkaで静的クラスとして作成するのはなぜですか?

+0

英語を改訂して再度尋ねてください - トップレベルの静的クラスを作成することはできませんし、内部の静的クラスインスタンスも特定の囲むクラスインスタンスにリンクされていません。 – Snickers3192

+0

@ Snickers3192私は今私のポイントをクリアしたと思う。 – Partish

+0

私はまだあなたが理にかなっているとは思わない、なぜあなたは俳優として非静的な内部クラスを使用することができないのですか? – Snickers3192

答えて

1

静的クラスとしてメッセージを作成する必要はありません。

一つはスニッカーズはつまり、私たちは不変のメッセージを作りたい、それが静的なクラスを経由して、Javaでこれを行うにsintactically簡単だ、言及されたものである。それには2つの主な理由があり

です。すべてのフィールドをプライベートおよび/またはファイナルとして設定することでこれを行うことなく、シリアル化/デシリアライズをより複雑にすることができます(たとえばJacksonを使用している場合は@JsonCreator ...)。

2番目は、メッセージを受け入れる俳優の内部クラスとしてメッセージを宣言することで、2つの意味的関係を確立して、どの俳優がどのメッセージを受け入れるかを簡単に知ることができます。

しかし、これらの提案をすべて無視して通常のクラスとして構築し、他の方法で誰にも変更されていないことを確認することができます。

関連する問題