Enumでシングルトン
Enumはシングルトンとして使うことができる。by Effective Java
package en1; public enum SampleEnum { SINGLETON("insance_name"); private SampleEnum(String name) { this.name = name; } final private String name; public void showName() { System.out.println(this.name); } }
呼び出し側。
package en1; public class Main { public static void main(String[] args) { SampleEnum.SINGLETON.showName(); // => instance_name } }
ちなみに、Enumはstatic importと組み合わせると型名を省くことができる。こんなかんじ。
package en1; import static en1.SampleEnum.*; public class Main { public static void main(String[] args) { SINGLETON.showName(); } }
でもこうなると、SINGLETONって、なんのシングルトンだよ、ってかんじがするので、
Enumでシングルトンを実装する際は、定数名の方が大事になるのかな。
名前重要ってことで。