【EffectiveJava[3]】

<第 2 章 オブジェクトの生成と消滅>
項目3:private のコンストラクタか enum 型でシングルトン特性を強制する

■著書からの要点抜粋
シングルトンを生成するときの3つのパターン
1.public finalのフィールドによるシングルトン
→AccesibleObject.setAccssibleメソッドを使用して、リフレクションによりコンストラクタを呼び出せてしまう。
2.staticファクトリーメソッドによるシングルトン
シリアライズ時に問題あり(。。。省略)
3.enumシングルトン
現在ではシングルトンを実装する最善の方法は単一要素のenum型を用いること。


■所感
以前使用したのはstaticファクトリーメソッドによるシングルトン。
まぁ、実装者は4名ほどなので問題はなかったけど。。
APIのように広く公開する可能性があるなら3の方法を次から使用しよう。