php设计模式-单例模式

2018-08-06  本文已影响0人  destiny96
// ::操作符只能访问静态变量和静态函数
// new对象都会消耗内存
// 使用场景:最常用的地方是数据库连接。
// 使用单例模式生成一个对象后, 该对象可以被其它众多对象所使用。
class Instance{
    // $_instance必须声明为静态的私有变量
    private static $_instance;
    // 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义
    private function __construct(){}
    // 私有的__clone()方法防止克隆对象
    final private function __clone(){}
    // 防止被反序列化
    final private function __wakeup(){}
    // getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用   
    // instanceof 使用这个关键字可以确定一个对象是类的实例、类的子类,还是实现了某个特定接口,并进行相应的操作
    public static function getInstance(){
        if(!(self::$_instance instanceof self)){
            // new对象都会消耗内存
            self::$_instance = new self;
        }
        return self::$_instance;
    }
    
    public function test1(){
        echo "单例模式";
    }   
    public function test2(){
        echo "19940906";
    }
}
// 调用
$single = Instance::getInstance();
$single->test1();
$single->test2();
上一篇 下一篇

猜你喜欢

热点阅读