読者です 読者をやめる 読者になる 読者になる

Web就活日記

愛と夢と人生について書きます

Singleton

design pattern PHP

Singletonパターン

1 外部からインスタンスを生成させない
2 インスタンスをひとつだけ生成を許す
ということを実現するデザインパターン

Singletonクラス

<?php

class singleton {
    private static $instance_ = null;
    private function __construct() {
        echo "make instance \n";
    }   

    public static function getInstance() {
        if( is_null( self::$instance_ ) ) { 
            self::$instance_ = new singleton();
        }   
        return self::$instance_;
    }   

}

client

外部のclientからnewをしようとするとerrorになる。
インスタンスを取得する場合はクラスメソッドのgetInstance()を利用する。

<?php

//error
$instance = new singleton(); //ここはエラーになる。

//success
$instance = singleton::getInstance();

スポンサーリンク