FC2ブログ
HOME   »  スポンサー広告  »  スポンサーサイト   »  Java  »  [Java]Singletonパターン

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Java]Singletonパターン

Singletonパターンとはデザインパターンの1つで、あるクラスのインスタンスが1つしか生成されない(できない)ことを確実にするためのデザインパターンである。

Singletonパターンの実装は以下の通り。
public class Hoge {
    private static Hoge instance = new Hoge();

    private Hoge() {
        あれこれ(コンストラクタでの処理)
    }

    public static Hoge getInstance() {
        return instance;
    }

    以降、その他のフィールドやメソッドを実装
}
Singletonパターンのポイントは以下。

・自身のインスタンスをprivate且つstaticなフィールドとして保持する。
・コンストラクタをprivateとし、他クラスから呼び出せないようにする。
・コンストラクタとは別に、自身のインスタンスを返すpublic且つstaticなメソッドを実装し、他クラスはこのメソッドを呼び出すことにより本クラスのインスタンスを取得する。

以上の実装により、インスタンスが1つしか生成されないことを確実にすることができる。

(2011-07-26 追記)
ちなみに、このSingletonパターンでインスタンスがいつ生成されるのか(いつコンストラクタが呼び出されるのか)、下記コードで確認してみる。

○Singletonパターンクラス
public class Hoge {
    private static Hoge instance = new Hoge();

    private Hoge() {
        System.out.println("Constructor");
    }

    public static void testMethod() {
        System.out.println("testMethod");
    }

    public static Hoge getInstance() {
        System.out.println("getInstance");
        return instance;
    }
}

○上記クラスの各メソッドを実行
public class Main {
    public static void main(String[] args) {
        System.out.println("Start");
        Hoge.testMethod();
        Hoge hoge = Hoge.getInstance();
    }
}
上記を実行すると、コンソールには以下の様にメッセージが表示される。


Start
Constructor
testMethod
getInstance


上記の結果から、初めてHogeクラスにアクセスしたタイミングでインスタンスが生成される(コンストラクタが呼び出される)ことが分かる。


関連記事
Comment
Trackback
Trackback URL
Comment Form
管理者にだけ表示を許可する
プロフィール

まさお

Author:まさお
プログラミングは趣味レベルなので、お手柔らかに。

ブログランキング
ブログランキング参加中。是非クリックお願いします。


にほんブログ村 IT技術ブログ Androidアプリ開発へ

人気ブログランキングへ

ブログランキング



ブログ王

ブログランキング【ブログの惑星】

プログラム人気ブログランキング
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。