PHP デザインパターン(Singletonパターン)
Singletonパターン
↓買ったので、JavaをPHPに読み替えて勉強。そのメモ。
サンプルプログラム
<?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つしかないということが保証される。
予期せず複数のインスタンスが存在してしまい、思いがけないバグの発生を防げる。