PHP デザインパターン(Singletonパターン)


Singletonパターン

↓買ったので、JavaをPHPに読み替えて勉強。そのメモ。

サンプルプログラム

f:id:taramonera:20101124170116p:image

<?php
class Singleton{
private static $singleton;
private function __construct(){
echo "インスタンスを生成しました。";
}
static function getInstance(){
if( !isset(Singleton::$singleton) ){
Singleton::$singleton = new Singleton();
}
return Singleton::$singleton;
}
}
$obj1 = Singleton::getInstance();
$obj2 = Singleton::getInstance();
if($obj1 === $obj2){
echo "obj1とobj2は同じ。";
}else{
echo "obj1とobj2は同じではない。";
}
$obj3 = new Singleton();//Singletonのコンストラクタはprivateなのでエラーとなる
?>

Singletonパターンを使うと

Singletonパターンを使うと、インスタンスが1つしかないということが保証される。

予期せず複数のインスタンスが存在してしまい、思いがけないバグの発生を防げる。

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。