@blog.justoneplanet.info

日々勉強

デザインパターン:Singleton(一枚札)

■趣旨

サンプルソースです。複数のクラスからデータベースに接続している場合、DBハンドラが複数できてしまうのはリソースの無駄遣い。。。なので1つのDBハンドラ(オブジェクト)を使いまわすクラスです。Singletonパターンとはオブジェクトが一定の少数しか生成されない事を保障するパターンである。

■DirectoryFile.class.php

<php
class DbConnection {
    protected static $dbh;
    protected function __construct(){
        self::$dbh = new PDO("mysql:dbname=sample;host=localhost", "user", "pass");
    }
    public static function getDbConnection(){
        if(!self::$dbh){
            new self();
        }
        return self::$dbh;
    }
}
?>

■あとがき

素敵なソースを見つけたので・・・constructorをprotectedにし自身の中からしか呼び出せないようにし、staticなfunction、getDbConnectionからnew self()としている。コロンブスの卵的なトリッキー&ひらめき的な素敵さだ。

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment