PHP设计模式之单例模式

2020-04-20  本文已影响0人  安知253

简介

在单此请求或者单次进程中运行,保证一个类只生成一个实例

示例

<?php

class Singleton{
    public $name = 'czz';
    public $age = '20';

    public static $_stance = null;

    public function __construct(){
        //为了演示单例模式和普通的new有什么区别,故将这里的权限修饰符改为public,单例应为protected或private
    }

    public static function getInstance(){
        if(!self::$_stance instanceof static){
            self::$_stance = new static();
        }
        return self::$_stance;
    }
}

$a = Singleton::getInstance();
var_dump($a);
$b = Singleton::getInstance();
var_dump($b);

$c = new Singleton();
var_dump($c);
$d = new Singleton();
var_dump($d);

四个变量打印结果

object(Singleton)#1 (0) {
}
object(Singleton)#1 (0) {
}
object(Singleton)#2 (0) {
}
object(Singleton)#3 (0) {
}

应用场景

数据库实例:一个api业务逻辑,可能用到多次查询数据库,那么只需要一个数据库连接实例即可
依次类推

参考资料

单例模式

上一篇 下一篇

猜你喜欢

热点阅读