PHP设计模式之单例模式demo

<?php

/**
 * 设计模式之单例模式
 * $_instance必须声明为静态的私有变量
 * 构造函数和析构函数必须声明为私有,防止外部程序new
 * 类从而失去单例模式的意义
 * getInstance()方法必须设置为公有的,必须调用此方法
 * 以返回实例的一个引用
 * ::操作符只能访问静态变量和静态函数
 * new对象都会消耗内存
 * 使用场景:最常用的地方是数据库连接。
 * 使用单例模式生成一个对象后,
 * 该对象可以被其它众多对象所使用。
 */
class Example
{
//保存例实例在此属性中
    private static $_instance;
//构造函数声明为private,防止直接创建对象
    public function __construct()
    {
        //初始的方法
    }
//单例方法
    public static function getInstance()
    {
        if(!isset(self::$_instance))
        {
            $c=__CLASS__;
            self::$_instance=new $c;
        }
        return self::$_instance;
    }
    function test()
    {
        echo("test");
    }
}
// 这个写法会出错,因为构造方法被声明为private
//$test = new Example;
// 下面将得到Example类的单例对象
$test = Example::getInstance();
$test->test();

?>

猜你喜欢

转载自blog.csdn.net/qq_22823581/article/details/79353305