前言
单利模式 避免内存开销 内存占用。如:windows 资源管理器 只能有一个实例 如果有多个文件资源管理器将无法保证数据的准确性。
单利模式
保证程序运行时只有一个实例。
单例模式的实现 【“三私一公”】
<?php
/**
* 单例模式
* 【三私一公】
* 私有静态属性、 私有构造方法 、私有克隆方法 、公共的获取实例的方法
*/
class Single{
private static $object=null;// 保存对象
//私有化 禁止实例化
private function __construct(){
echo __METHOD__;
}
//提供一个静态的公共的方法获取对象
public static function getInstance(){
if(!(self::$object instanceof self)){ //判断object 是否为 Single 对象的实例
return self::$object=new self; //产生一个single 对象 并保存到 $object 并返回
}else{
return self::$object; //是对象直接返回已有的对象
}
}
//私有化克隆方法 防止外部克隆对象 保证程序运行只有一个实例
private function __clone(){}
}
//外部获取对象
$s1= Single::getInstance();
$s2=Single::getinstance();
echo "<br/>",var_dump($s1,$s2);