您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
设计模式-单例模式
发布时间:2017-11-30 09:19:04编辑:雪饮阅读()
<?php
//单例模式
class sigle{
protected static $ins=null;
//为外界提供一个单例模式实例化数据库的方法
public static function getIns(){
if(self::$ins===null){
self::$ins=new self();
}
return self::$ins;
}
//若有人继承本类,则不允许其覆盖本类的构造方法
//若没有final的限制,子类继承本类将构造方法覆盖并以public权限则单例模式又会被打破。
final protected function __construct(){
}
//用final封禁本类对象的克隆
final protected function __clone(){
}
}
$s1=sigle::getIns();
$s2=sigle::getIns();
if($s1===$s2){
echo "是一个对象";
}
else{
echo "不是一个对象";
}
/*
在某些场合,一个类不允许被多次实例化,比如数据库类,每个人都new一下那么性能是很损耗的。我们需要判断数据库类是否被实例化过,若实例化过相同的对象则多个用户共享即可,无需重新new。
这就是单例模式。
*/
?>
关键字词:设计模式,单例模式