【Android開発】グローバル変数的な共通のクラス(Java)
Javaでログイン情報の格納とかでプロジェクト共通で参照するグローバル変数的なクラスをどう実装するか調査したメモ。
シングルトン(Singleton)というデザインパターンを使えばできるみたい。
そういえば「Java言語で学ぶデザインパターン入門」を読んだときにそんなん書いてあったな・・・。
詳しく(サンプルプログラム)は下記サイトを参考に。
@IT:Java TIPS -- クラスのインスタンスを1つに保つ(Singletonパターン)
例えば、ユーザー情報を格納する場合は次のような感じ。
public class UserSession { // Start プロジェクトで共通のインスタンスにする処理(シングルトンパターン) private static UserSession instance = new UserSession(); private UserSession(){} public static UserSession getInstance() { return instance; } // End プロジェクトで共通のインスタンスにする処理(シングルトンパターン) private String _UserName = ""; public void setUserName(String sUserName) { this._UserName = sUserName; } public String getUserName() { return _UserName; } }
このクラスをimportして
UserSession objUser = UserSession.getInstance();
objUser.setUserName("hogeuser");
をしてから、別のActivity(クラス)で
UserSession objUser = UserSession.getInstance();
Log.d("tag", objUser.getUserName());
をしてみるとさっきセットした名前を出力してくれているはず。
.NETの開発でも応用できる。
デザインパターンをもう一度勉強しなおそうかな。