php中什么是单例模式,php单例模式是什么意思

c482c008435e4aad793fbce981834706.png

php单例模式是什么意思

一个类有且仅有一个实例,并且自行实例化后提供给整个程序使用,或者可以理解为在整个程序运行期间,保证这个类有且仅一个实例,并对外提供一个能够访问它的全局访问点。

php单例模式示例class Singleton {

private static $_instance;//保存实例化出来的单例

//构造函数私有化,确保单例类不能通过其它对象 new 出来

private final function __construct() {}

//定义私有的__clone()方法,这是确保单例类不能被复制或克隆,否则又不是单例了。

private function __clone() {}

public static function getInstance() {

//检测类是否被实例化,如果没有实例化,就 new 一下,已经实例化就直接返回。

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

self::$_instance = new test();

}

return self::$_instance;

}

}

//拿到单例实例,多次调用都是同一个实例

Singleton::getInstance();

优点

1、提供了对唯一实例达到受控访问。

2、由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。

缺点

1、单例模式破坏了常见的类模式以及没有抽象层,因扩展时有很大的困难。

2、单例模式为了能够保持运行期间唯一并能够被全局访问,污染了全局变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值