php之单例模式

本文深入解析了单例模式的三个核心要素:确保类只有一个实例、自行创建实例、向系统提供该实例。并通过PHP代码示例展示了如何实现这些要素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单例模式的三个要点:

  1.某个类只能有一个实例。

  2.必须自行创建这个实例。

  3.必须自行向整个系统提供这个实例。

个人的理解  单例模式一个内循环,并且对外只有一个入口的模式,外界只能通过这个入口访问到这个单例,其他都单例自身去操作,比如实例化自己,判断自己是否已经存在等等 都是有单例本身自己去判断

根据单例的三个要点  我们就需要创建一下方法是满足这三个要求

1 某个类只能有一个实例   那么他就不能被私自创建,不能被克隆

  //防止直接创建对象

  private function __construct(){

      这里是你的初始化处理

  }

  //防止克隆对象

  private function __clone(){

      trigger_error('禁止克隆' ,E_USER_ERROR);

  }

2  必须自行创建这个实例。为什么是要自行创建这个实例,因为如果他不自己创建自己,那么他只能由他人创建,那么就有空被创建多个,那么这就失去了单例的意义,同时他还要像整个系统提供这个实例,那么他就必须整个系统提供获取这个实例的入口

private static $instance;

static public function getInstance(){

    //判断$instance是否是当前类的对象

   //没有则创建 那么就自己实例化自己  并静态存储供全部人使用

   if (!self::$instance instanceof self) {

       self::$instance = new self();

   }

   return self::$instance;

}

然后下面的就是该类本身的逻辑    

以上就是个人对单例设计模式的理解  如有不对  请多多指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PHP小渣渣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值