php设计模式-----单件模式

php单件模式即实现:一个类仅有一个实例。
<?php
class Db{
private static $instance = NULL;

private function __construct(){}    

public static function getInstance(){
     if (self::$instance == NULL)
     {
         self::$instance = new Db();
     }
     return self::$instance;
}

private function __destruct(){}

public function sayHi(){
     return "Hi";
}
}

//调用
$db = new Db(); //错误
$db = Db::getInstance();//正确
?>
 
或者提供一个singleton类,然后通过调用getInstance方法,可以为任何一个类生产出一个实例来。
class singleton{
        function getInstance($class){
                static $instances = array();
                if(!array_key_exists($class,$instances)){
                        $instances[$class] = &new $class;
                }
                $instance = $instances[$class];
                
                return $instance;
        }
}

class People{
        function sayHi(){
                return 'Hello i am a people?';
        }
}

echo "<br />";
echo singleton::getInstance('People')->sayHi();

 

你可能感兴趣的:(设计模式,PHP,职场,休闲)