设计模式之单例模式
基本介绍
整个请求生命周期内只实例化一次目标类,可以节省内存消耗
demo
<?php
namespace App\study;
/**
* Desc:单例模式
* Author:glt 2022/1/10 17:51
*/
class Single
{
//静态私有属性,存放对象
private static $instance;
//私有构造方法,防止外部实例化
private function __construct()
{
}
//私有克隆方法,禁止外部克隆
private function __clone()
{
}
//唯一入口获取对象
public static function getInstance()
{
if (!self::$instance instanceof self) {
self::$instance = new self();
}
return self::$instance;
}
//用于测试多次实例化对象是否是同一个
public $a;
}
测试脚本
/**
* Desc:单例模式测试
* Author:glt 2022/1/10 18:32
*/
public function single()
{
$instance1 = Single::getInstance();
$instance2 = Single::getInstance();
$instance1->a = 11;
var_dump($instance1,$instance2);
$instance2->a = 22;
var_dump($instance1,$instance2);
}

浙公网安备 33010602011771号