hahaha,从今天开始,我要开始写博客了,来记录的我学习历程。就从设计模式开始吧,今天第一篇——单例模式。
1、什么是单例模式:
单例模式是一个类在系统中只能有一个实例对象,而且实例化后可供整个系统使用。
2、为什么要使用单例模式:
单例模式可以避免大量的new 操作,因为每一次的new 操作都会耗费资源,所以单例墨海一般适用于比较大的,使用频繁的类。
3、单例模式的特点:
单例模式有个跟显著的特点就是类的构造方法一定是私有的,这就避免了外部去new这个类的情况。
上代码:
//单例模式
class single{
private static $obj;
//要有一个私有的构造方法,防止外部new
private function __construct()
{
}
//有一个静态的的获取实例的方法
static public function getInstance(){
if(self::$obj instanceof single){
return self::$obj;
}else{
self::$obj = new single();
return self::$obj;
}
}
public function getInfo(){
echo "单例模式成功";
}
//定义一个私有的克隆方法,防止对象呗克隆
private function __clone()
{
// TODO: Implement __clone() method.
echo "单例模式不给克隆";
}
}
$single = single::getInstance();
$single->getInfo();
$single1 = new single();//danli单例单例模式,不能new,报错
$single1->getInfo();