php的单例模式


       前言:

             直入主题,为什么有php的单例模式?它存在有什么意义?

             原因:

                  php作为一门解释性的脚本语言,每次运行以后资源就被系统收回。没有办法让某个对象常驻在内存中,比如数据库连接这种重复性比较高的操作.如果每次都去实例化,那么则会造成大量的内存资源和系统资源的浪费。

               所以,就有单例模式来解决这个问题。

               单例模式的核心就是 "三私一公"


                   三私----->私有的唯一静态成员变量$_instance,

                                    私有构造方法,

                                    私有的克隆方法

                   一公------>一个访问实例的公开静态方法

                    下面是代码.               

class DemoClass
{
    /*
     * 唯一的私有静态成员访问变量
     */
    private static $_instance=NULL;

    /*
     * 私有的构造方法,防止外部实例化
     */
    private function __construct()
    {}
    /*
     * 提供一个访问这个实例的公共静态方法,从而返回实例的一个引用
     */
    public static function getInstance()
    {
     if(is_null(self::$_instance))
     {
         self::$_instance=new DemoClass();
     }
     return self::$_instance;
    }
    /*
     * 防止用户克隆实例
     */
    private function __clone()
    {}
    public function testInformation()
    {
        echo "i am test information";
    }
}

$demo=DemoClass::getInstance();
$demo->testInformation();

               


             

               

         

            


你可能感兴趣的:(php)