【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の開発でも応用できる。

デザインパターンをもう一度勉強しなおそうかな。