设计模式 之 单例模式

单例模式思路:

  私有化构造方法: 防止实例化

  私有化克隆方法: 防止克隆

  私有化静态属性: 保存对象

  公有化静态方法: 获取对象

 

代码:

<?php
//设计模式:单例模式

class Singleton
{
    //私有化静态属性:用于保存对象
    private static $obj;

    //私有化构造方法
    private function __construct(){}

    //公有化静态方法:用于实例化对象
    public static function getObj()
    {
        //判断对象是否存在
        if(!is_object(self::$obj))
        {
            //不存在:实例化对象
            self::$obj = new Singleton();

            //返回对象
            return self::$obj;

        }
    }

    //私有化克隆方法
    private function __clone(){}

}

$p1 = Singleton::getObj();

var_dump($p1);

 

posted @ 2015-10-09 21:25  lesuso  阅读(108)  评论(0)    收藏  举报