【PHP 单例模式】

前言

单利模式 避免内存开销 内存占用。如:windows 资源管理器 只能有一个实例 如果有多个文件资源管理器将无法保证数据的准确性。

单利模式

保证程序运行时只有一个实例。

单例模式的实现 【“三私一公”】

  1. 私有构造方法 (止类外部实例化)

  2. 私有属性 (用来保存对象)

  3. 私有克隆方法(防止外部克隆对象)

  4. 公共的获取对象的方法 getInstance()

<?php

/**
 * 单例模式 
 * 【三私一公】
 * 私有静态属性、 私有构造方法 、私有克隆方法  、公共的获取实例的方法
 */
class Single{

    private static $object=null;// 保存对象 

    //私有化 禁止实例化
    private function __construct(){
        echo __METHOD__;
    }
    //提供一个静态的公共的方法获取对象
    public static function getInstance(){
       if(!(self::$object instanceof self)){ //判断object 是否为 Single 对象的实例
            return self::$object=new self; //产生一个single 对象 并保存到 $object 并返回 
       }else{
        return self::$object; //是对象直接返回已有的对象
       }
    }
    //私有化克隆方法 防止外部克隆对象  保证程序运行只有一个实例
    private function __clone(){}
}
//外部获取对象
$s1= Single::getInstance();
$s2=Single::getinstance();
echo "<br/>",var_dump($s1,$s2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值