单例模式可以说是面向对象语言里最常用,也是最简单的一种模式。译文单就是单个实例,单个对象
的意思,就是说我们去实例化一个类的时候,不管调用多少次,都永远只有一个实例
, 不会有多个
,这样就节省了内存分配开支。
先简单说下单例模式
的原理:将构造函数__construct
设置为私有的private
,对外提供一个比如static静态方法
:getInstance
获得实例,在getInstance
方法里来做统一判断是否有new
一个实例,有的话直接返回,没有就new
一个,这样就保证了不管外面调用多少次,只保证new了一次
。
话不多说直接上代码
/ ** * 1.单例模式Single.php * / class Single { static private $ instance ; / ** *在单例模式下,要将构造方法设为私有的,这样在外部就不能实例化 * / private function __construct() { } / ** *这个是获取实例化对象的入口,是静态方法,不需要new,可以直接调用 * / static public function getInstance() { //判断一下$ instance是否已经存在 if (!isset (self :: $ instance )){ self :: $ instance = new Single() ; } 返回self :: $ instance ; } public function get() { echo'you get it!' ; } }
到这里一个简单的php单例模式就出来了,大家可以尝试一下