首先,单例模式也是我们设计模式中,最基本,经常使用的一种模式!在我们的业务代码当中,本来我们要通过Db来查询数据库,但是我们如果不是用的单例模式的时候,每次查询都要重复new Db对象并使用,这个地方就造成了系统资源的浪费。所以我们最常见的单例模式的使用,就是在数据库操作当中以及其他的I/O操作。
单例类只能有一个实例。
单例类必须自己创建自己的唯一实例。
单例类必须给所有其他对象提供这一实例。
<?php
//创建单例
class Singleton {
// 实例对象
private static $_instance = null;
/**
* 声明一个私有的构造函数,方式通过new来实例化
* 关闭: 通过初始化来实例化对象
*/
private function __construct() {
}
/**
* 获取对象实例
*/
public static function getInstance() {
// 第一次实例化开始时, self::$_instance=null
if (is_null(self::$_instance)) {
// 给实例属性赋值 实例化当前类
self::$_instance = new self();
}
// 第二次实例化时,self::$_instance!=null
return self::$_instance;
}
/**
* 关闭clone对象复制的开关
*/
public function __clone() {
die("单例模式不能克隆");
}
}
如何使用这个单例类来获取我们的实例的
<?php
Singleton::getInstance(); // 首次初始化(实例化)
通过上面的例子,我们实现了单例模式,无论我们怎样实例化类,都只能实例化一次类,大大的节省里系统资源的创建和销毁的开销
设计模式的教程文档地址: 设计模式文档
设计模式的视频教程地址(Rango的大话PHP设计模式):大话PHP设计模式
本文为北溟有鱼QAQ原创文章,转载无需和我联系,但请注明来自北溟有鱼QAQ https://www.amdzz.cn
最新评论