【Java】シングルトン・クラス(Singleton Class)について


こんにちは^^
都内のIT企業で働いているグエンです。
初めての投稿なんですので、少しドキドキですね。^^
Java SE8 Goldを勉強するにあたって、覚えなければならいものをここでメモします。
早速ですが、シングルトン・クラスについてメモをしたいと思います。

シングルトンとは

シングルトンとは、あるクラスのインスタンスが2つ以上生成されないことを保証するデザイン・パターンの1つです。

ですので、シングルトンは一般に以下に挙げるような指針に従って実装します。
1. private staticフィールドを宣言し、自身の単一のインスタンスを生成して、そのフィールドにセットしする。
⇒動機:インスタンスを1つだけ生成し、常にその1つのインスタンスのみを参照するようにする。
2. コンストラクタをprivateで宣言する。
⇒動機:外部からインスタンスを生成できないようにする(クラス内部でのみインスタンス生成可能)
3. 自身のフィールドにセットされているインスタンスを返すpublic staticメソッドを提供する。
⇒動機:外部からこのクラスのインスタンス参照を取得できるようにする。

シングルトン・クラスの実装例:

Foo.java
public class Foo {
    private static final Foo foo = new Foo();
    private Foo();
    public static Foo getInstance() {
        return foo;
    }
}

外部からシングルトン・クラスのインスタンスを取得する。

Foo foo = Foo.getInstance();

最後に

皆さん、いかがでしょうか?
少しでもシングルトン・クラスについて理解していただければ嬉しいです。^^
では、また次回の投稿で会いましょう!
バイバイ!