设计模式简析(单例模式)
什么是设计模式:设计模式是指设计某个程序的方式。
今天我们简析一下单例模式
单例模式:一个类只能最多创建出一个对象
实现单例必须满足以下条件:
1.不让克隆(私有化克隆魔术方法)
2。不让创建对象(私有化构造方法),不能在类外部使用new关键字创建对象。
3。进入类的内部创建对象(使用静态方法)
4.在类中使用静态属性来保存创建的对象,来判断下次还能不能创建新对象。代码实现
<?php
//单例模式:一个类只能创建一个对象
class Single
{
//属性
private $name;
public static $counts=0;
//定义一个静态属性来保存对象
private static $single;
//私有化构造方法
private function __construct(){
$this->name=$name;
//计数
self::$counts++;
}
//私有化克隆魔术方法
private function __clone()
{
//计数
self::$counts++;
}
//静态方法,让类进入到类的内部进行实例化得到对象
public static function getInstance($name)
{
//判断对象是否存在,如果存在则直接返回,否则创建
if(self::$single)
{
//判断对象是否存在,如果存在则直接返回原来的对象,否则创建
}else{
//创造一个对象
self::$single=new Single($name);
//返回对象
return self::$single;
}
}
}
//得到对象
$single=Single::getInstance('wangjing');