2011-11-19 9 views
1

次のような場合があります。クラスレベルの変数は、状況に適していますか?

このクラスは、値を持つメッセージをサーバーから受信します。その後、サーバーに別のメッセージを送ります。私はその後、サーバーから再びメッセージが表示されますex : m_number = server->args[0];

クラスレベル変数に受信した値を格納し、この時間は、私は、サーバーから、以前から格納されている変数といくつかの新しい変数を必要とするクラスのメソッドを実行します。

この目的のためだけに変数を設定することをお勧めしますか?

もう1つの例は、サーバーから変数を取得した後、別のシステムがサーバーから取得した情報を必要とします。これは、他のシステムがいつそれを必要とするのかわからないためです私はそれを受け取ってからしばらく時間がかかるでしょう。

ありがとう

+1

あなたのアプローチは完璧です。それは何のための変数です。 :) –

+0

他に何を使用しますか? – Xeo

+0

インスタンス変数または静的(クラス)変数を意味するかどうかを明確にすることは重要ですか?私は静的を意味すると仮定しましたが、あなたの質問からは分かりません(インスタンス変数varを解釈するほとんどの応答を参照してください) – Mordachai

答えて

4

[編集:クラスレベルの変数で、クラスのデータメンバーstaticを意味すると私は答えました。他の2人は、クラスの非静的データメンバーを意味すると仮定して答えました。あなたと無関係な答えを無視してください:-)]

これはおそらくいい考えではありません。行のどこかで、一度に2つの異なるサーバーと通信したいとします。これで、同じ静的データメンバーに格納する必要がある2つの異なる値が得られました。

特定のサーバーとの接続/会話/セッションを表すオブジェクトがあり、そこにそのサーバーに関連する状態を格納する方がよいでしょう。

しかし、すべてのソフトウェアが働くために素晴らしいアイディアを必要とするわけではないので、あなたはそれを離れてしまうかもしれません。道徳的にはグローバルであり、グローバルではしばしばトラブルにつながることを覚えておいてください。

+2

+1静的変数を解釈するため。いい答えだ。 – FailedDev

0

この状況では、優れたアイデアです。一般的に、メンバー変数が必要です。

0

いいえ、なぜですか?これは実際には変数の全目的ではありませんか?あなたが何かを覚えておく必要がなければ、関数ではなく "状態"を持つクラスを使用することはありません。あなたの質問の説明から、複数の状態を持つクラスがあるようだから、それを覚えておくには何らかのメカニズムが必要です。だから私はそれが完璧にいいと思う。

関連する問題