株式会社エスロジカル
株式会社エスロジカル
セキュリティ、Web開発、Unix開発、Go言語

■ Java:Singletonパターン

技術ドキュメント目次 -> Java -> Singletonパターン

本技術ドキュメントは、ここしばらくメンテナンスをしておりません。
内容が古くなっている可能性などございますこと、ご理解を頂けますようお願いいたします。


サイフにやさしいSSL証明書
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。


◆ はじめに

Singletonパターン を適用したクラス(*)の実装の雛形をメモしておきます。

(*)
インスタンスが1つしか存在しないことを保障するクラス。
通常、コンストラクタが private になっていて、
getInstance() というメソッドの呼び出しによって、インスタンスが返るように実装する。

◆ サンプル

Singleton な Config クラスのサンプルです。

/*
 * Copyright (C) 2006 Slogical Corporation
 */
import java.io.*;
import java.lang.*;
import java.util.*;

public class Config {

    /**
     * sigltone なクラスとして実装する
     */
    private static Config conf;
    private Config () {
    }
    public static Config getInstance () {
        if (conf == null) {
            conf = new Config();
        }
        return conf;
    }

    private String name;
    public String getName () {
        return name;
    }
    public void setName (String s) {
        name = s;
    }

}


Config クラスの setter/getter メソッドを実行し、
インスタンスが1つしか存在していないかを確認する Test クラスのソースコードです。

/*
 * Copyright (C) 2006 Slogical Corporation
 */
import java.io.*;
import java.lang.*;

public class Test {

    public static void main (String args[]) {
        Config c1 = Config.getInstance();
        Config c2 = Config.getInstance();

        System.out.println("c1.setName : test");
        c1.setName("test");
        System.out.println("c2.getName : " + c2.getName());

        System.out.println("");

        System.out.println("c2.setName : abcdefg");
        c2.setName("abcdefg");
        System.out.println("c1.getName : " + c1.getName());
    }

}




■ Java についての他のドキュメント


■ 他のグループのドキュメント

Apache  /  Linux  /  FreeBSD  /  OpenSSL  /  Perl  /  HTTPプロトコル  /  Jakarta Tomcat  /  Java  /  NetBSD  /  Oracle  /  PostgreSQL  /  UNIX の C言語  /  UNIX のコマンド  /  Windows  /  bind  /  システム運用TIPS

アンケートにご協力をお願いいたします。

1. このドキュメントへの評価をご選択ください。
         

2. ご感想をお書きください。