PHP 面向对象单例模式记录
1.单例模式就是设计的类最多只能得到一个对象
2.单例模式的设计规范是“三私一公”
私有化构造方法: 禁止在类的外部无限实例化对象
私有化克隆方法: 禁止对象无限克隆对象
私有化静态属性: 保存类内部实例化得到的对象 (防止被外部更改)
公有化静态方法: 允许外部通过调用类内部方法获取对象
该方法内大致逻辑 获取静态属性,验证是否已经实例化为当前类对象,如果实例化则返回该属性,如果未实例化则 new self();赋值给该属性并返回
3.单例模式如果还有其他诉求,可以在类中增加相应的其他类成员(方法)
4.单例模式的目的是为了保护资源的唯一性
<?php
class demo
{
//私有化静态属性
private static $obj = null;
//私有化构造方法,防止外部实例化
private function __construct(){}
//共有获取实例方法
public static function getInstance()
{
if(self::$obj instanceof demo){
return self::$obj;
}else{
self::$obj=new self();
return self::$obj;
}
}
//私有化克隆方法,防止外部克隆实例
private function __clone(){}
}
$demo=demo::getInstance();
$demo1=demo::getInstance();
var_dump($demo);
var_dump($demo1);
//object(demo)#1 (0) { } object(demo)#1 (0) { }
标签: 单例模式