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业务逻辑,可能用到多次查询数据库,那么只需要一个数据库连接实例即可
依次类推