PHP知识点

PHP设计模式-单例模式-PHP面试题4

2021-02-25 11:17:08

使应用中只存在一个对象的实例,并且使这个单实例负责所有对该对象的调用。

单例模式强制类只能创建一个对象,一般是安全或者统一界面展示的时候会用到,而静态变量实现单例主要是为了减少new操作,并不能阻止new和clone操作。

单例应用的地方:主要可以有三个:

数据库连接器

日志记录器

应用锁文件 (理论上整个应用只有一个锁文件 …)

序列表生成器,web页面的计数器等都需要用到单例模式,

PHP单例模式三要素

需要一个保存类的唯一实例的静态成员变量。

构造函数和克隆函数必须声明为私有的,防止外部程序创建或复制实例副本。

必须提供一个访问这个实例的公共静态方法,从而返回唯一实例的一个引用。

使用单例模式的好处很大,以数据库操作为例。若不采用单例模式,当程序中出现大量数据库操作时,每次都要执行new操作,

每次都会消耗大量的内存资源和系统资源,而且每次打开和关闭数据库连接都是对数据库的一种极大考验和浪费。使用了单例模式,只需要实例化一次,不需要每次都执行new操作,极大降低了资源的耗费。