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; } }
インスタンスを生成しました。 同じインスタンス