別のクラスを作成し、それを静的データ変数のみで構成されるストレージとして使用するのは悪い考えですか?
私は現在Android用のアプリを開発していますが、質問はJavaの一般的なものです。
アンドロイドの場合、私はアクティビティ間を移動しています。その別のクラスにいくつかのグローバル/静的フラグ/変数を保存し、必要なアクティビティからそれらにアクセスできるようにしたいと考えています。
PS。データはセッション時間のみ必要です。
まあ、それは悪い考えではありません。このようなタイプのクラスを Android で使用できます。でもここでちょっと訂正。静的データを保持するクラスを維持する代わりに、そのクラスを作成して Application クラスを拡張し、それを使用してデータを格納できます。
ここに例があります、
public class HelloApplication extends Application {
private int globalVariable=1;
public int getGlobalVariable() {
return globalVariable;
}
public void setGlobalVariable(int globalVariable) {
this.globalVariable = globalVariable;
}
@Override
public void onCreate() {
//reinitialize variable
}
}
そしてあなたのアクティビティで、これを行います、
(HelloApplication)getApplication()).setGlobalVariable(10);
int valiable=((HelloApplication)getApplication()).getGlobalVariable();
また、SharedPreference について言えば、値を長期間保存する必要がある場合にのみ使用することを検討する必要があります。そうでない場合は、Application クラスを利用し、これを行う正当な方法であるセッターとゲッターを使用する必要があります。
SharedPreference を使用して、フラグと変数を格納できます。
このPreference Demoを見てください。
SharedPreference を使用してフラグと変数を保存する
http://developer.android.com/reference/android/content/SharedPreferences.html
グローバル変数の場合:
Android Application クラスを使用することをお勧めします。グローバルなアプリケーションの状態を保存するためのものです
グローバル変数を「決して」使用しないことをお勧めします....
別のアクティビティにアクセスしているときは、を使用していくつかの値をスローできますIntent.putExtras(Name_parameter, "value_parameter")
そして値を受け取ります:Bundle b = getIntent().getExtras();
ここで、bにはすべてのパラメータがあります
乾杯、
グローバル クラスを Singleton クラスでカプセル化することをお勧めします。詳細については、 シングルトン デザイン パターンを参照してください。
良い !私の知る限り、プロジェクトのサイズに依存する可能性があります。比較的大きい場合は、個別のクラスを使用して静的データを保存することをお勧めします (1 つのクラスだけでなく、使用する静的データのタイプに応じて 2 つ以上のクラスを保持する必要がある場合があります)。