设计模式之单例模式

file

<?php

# 单例模式

class Singleton
{
    private static $obj = null;

    # 私有化构造方法:防止外部无限实例化对象
    private function __construct()
    {
        # 没有初始化需求的话,构造方法可以为空方法
    }

    # 私有化克隆方法:防止外部进行克隆
    private function __clone()
    {
        die("单例模式,不允许克隆使用");
    }

    # 公有静态方法:产生对象返回给外部调用者
    public static function getInstance()
    {
        # 判定对象是否已经产生过
        if (!self::$obj instanceof self) {
            self::$obj = new self();
        }
        return self::$obj;
    }
}

# 调用测试
$s1 = Singleton::getInstance();
$s2 = Singleton::getInstance();
var_dump($s1);
var_dump($s2);

file

讨论数量: 0

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!