php 单例模式 单态模式

/**
 * 设计模式
 * 单例模式  别名  单态模式
 * 单例模式就是类只能被实例化一次
 */
  
class Test
{
    private static $_instance = null;//实例化属性
    private function __construct()//私有化构造方法
    {

    }
    private function __clone()//私有化魔术方法
    {

    }
    static function getInstance()//实例化调用方法
    {
        if(!(self::$_instance instanceof self))//使用instanceof判断$_instance是否是当前类的一个实例
        {
            self::$_instance = new self();
        }
        return self::$_instance;
    }
}

$test1 = Test::getInstance();//这是调用这个实例对象就不能用new,而是使用类里面的getInstanse方法
$test2 = Test::getInstance();
$test3 = Test::getInstance();
$test4 = Test::getInstance();

var_dump($test1);
var_dump($test2);
var_dump($test3);
var_dump($test4);
//我们可以看到四次输出都是被实例化了一次的对象,这就是单例模式也叫单态模式

 

posted @ 2017-12-03 16:59  enjie  阅读(169)  评论(0编辑  收藏  举报