2016-10-27 10 views
-1

私は何百万ものメッセージを処理する必要があります。私はこれらのメッセージを扱うクラスを持っています。何百万ものメッセージを取得し続けるうちに、すべてのメッセージのクラスのインスタンスを作成したくありません。だから私は単なるインスタンスを維持したいだけですが、問題はメッセージの種類が異なるためメッセージのタイプに基づいて引数の値が変わり続けることです。したがって、各メッセージごとに異なるインスタンスを作成してキャッシュするか、単一インスタンス(キャッシュ)を作成してから、メッセージタイプに基づいて引数の値を変更する必要があります。異なる引数を持つクラスの単一のインスタンス

+1

あなたがメッセージの種類ごとに1つのインスタンスを持つべきであるような音... –

+0

。 – Vaishu13

+0

これを変更する必要があります。つまり、スレッドセーフであるという希望をただちに失うことになります。私たちはあなたのオブジェクトが何をしているのか本当に分かっていませんが、それを不変にするのが妥当であれば、それは私には良いアイデアのように思えます...タイプの数が限られている場合は、 。 –

答えて

1

メッセージごとに1つのインスタンスを使用する必要があります。それはジョンが言及したように行かなければなりません。

あなたはすべてのメッセージタイプのためだけのインスタンスを使用する場合は、あなたが何ができるかのインスタンスのトラック

を維持することは難しいだろうが、あなたがこれらのメッセージのインスタンスを追加し続けることができArrayListを持っています。

1

静的なファクトリメソッドを見てください。これにより、必要なときにオブジェクトを作成(または作成しないこと)することができます。オブジェクトを作成するかどうか、または既存のオブジェクトを使用するかどうかのロジックを処理できます。複数の静的ファクトリを作成すると、何百万という不必要なオブジェクトを作成せずに必要なものを得ることができます。私はだけではなく、メッセージの種類ごとに1つのインスタンスの単一のインスタンスを維持する場合、問題になる何

What are static factory methods?

関連する問題