單件模式是我們在開發中經常用到的一種設計模式,利用PHP5面向對象的特性,我們可以很容易的構建單件模式的應用,下面是單件模式在PHP中的幾種實現方法:
class Stat{
static $instance = NULL;
static function getInstance(){
if(self::$instance == NULL){
self::$instance = new Stat();
}
return self::$instance;
}
private function __construct(){
}
private function __clone(){
}
function sayHi(){
return "The Class is saying hi to u ";
}
}
echo Stat::getInstance()->sayHi();
這是一種最通常的方式,在一個getInstance方法中返回唯一的類實例。
對這裡例子稍加修改,便可以產生一個通用的方法,只要叫道任何你想用到單件的類裡,就可以了。
class Teacher{
function sayHi(){
return "The teacher smiling and said 'Hello '";
}
static function getInstance(){
static $instance;
if(!isset($instance)){
$c = __CLASS__;
$instance = new $c;
}
return $instance;
}
}
echo Teacher::getInstance()->sayHi();