Singletonパターン

マルチスレッドを意識してシングルトンと言うのは新鮮だった

% find . -name "*.java" -print0 |xargs -0 cat                                []
public class Main {

	public static void main(String[] args) {
		Singleton s1 = Singleton.getInstance();
		Singleton s2 = Singleton.getInstance();
		if (s1 == s2) {
			System.out.println("同じインスタンス");
		} else {
			System.out.println("違うインスタンス");
		}
	}

}
public class Singleton {
	private static Singleton s = null;

	private Singleton() {
		System.out.println("インスタンスを生成しました。");
	}

	public static synchronized Singleton getInstance() {
		if (s == null) {
			s = new Singleton();
		}
		return s;
	}

}
インスタンスを生成しました。
同じインスタンス