php设计模式之单例模式

1.什么是单例模式:一个类最多只能产生一个对象,如果希望在系统中某个类(链接数据库的类)的对象只能存在一个,单例模式是最好的解决方案。
2.单利模式的实现:三私一公
①私有化构造方法:防止实例化
②私有化克隆方法:防止克隆
③私有化静态属性:保存对象
④私有化静态方法:获取对象
3.代码实现

class Singleton{
    private static $obj;//私有化静态属性
    private function __construct(){
        //私有化构造方法
    }
    private function __clone(){
        //私有化克隆方法
    }
    //静态方法产生对象
    static public function getInstance(){
        //对象不存在new一个对象
        if(!is_object(self::$obj)){
            self::$obj = new Singleton();
        }
        return self::$obj;
    }
}

4.测试单例模式

//无法实例化
$obj1 = new Singleton;
var_dump($obj1);
//成功获取对象
$obj2 = Singleton::getInstance();
var_dump($obj2);
//无法克隆
$obj3 = clone $obj2;
var_dump($obj3);

你可能感兴趣的:(php)