PHP设计模式之单例模式

单例模式设计(三私一公)

  1. 私有的静态的保存对象的属性

  2. 私有的构造方法 阻止类外new对象

  3. 私有的克隆方法阻止类外克隆对象

  4. 唯一创建对象的入口就是通过一个共有的静态方法

作用:减少内存消耗,如数据库操作时多次new数据库对象会造成数据库的重复连接与销毁消耗大量的内存资源,通过单例模式我们就可以达到只实例化一次数据库对象。

如下创建一个单例的数据库类

Class Mysql{
    //私有静态对象属性
	private static $obj = NULL;
	//私有构造方法防止外部new对象
	private function __construct(){}
	//私有克隆方法,防止外部通过克隆创建对象
	private function __clone(){}
	//提供一个唯一的创建对象的方法
	public static function getInstance(){
	    //判断当前对象是否被创建
	    if(!self::$obj instanceof self){
	        //如果对象不存在则创建
	        self::$obj = new self
	    }
	    return self::$obj;
	}
}
$mysql = Mysql::getInstance();//创建mysql对象

instanceof用于判对象是否是某个类的实例

<?php 
function myload($class){
	require ('./'.$class.'.class.php');
}
spl_autoload_register('myload');
class Db extends Mysql {

}
$db = new Mysql();
$db->test();
if ($db instanceof Db){
	echo "由Db类创建";
}else{
	echo "非Db类创建";
}
//非Db类创建
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值