Logo

PHP版单件模式

单件模式(Singleton Pattern),确保一个类只有一个实例,并提供一个全局访问点。

<?php
/*
 * 单件模式
 * 确保一个类只有一个实例,并提供一个全局访问点。
 */

class MyClass{
	private static $MyObj;

	//创建私有并且为空的构造函数使其不能new对象
	private function __construct(){}
	
	//创建私有并且为空的克隆函数使其不能clone对象
	private function __clone(){}

	public static function getObj(){
		if (null == self::$MyObj){
			self::$MyObj = new MyClass();
		}
		return self::$MyObj;
	}
}

$MyObj = MyClass::getObj();
var_dump($MyObj);
$MyObj = MyClass::getObj();
var_dump($MyObj);

输出:

object(MyClass)[1]

object(MyClass)[1]

comments powered by Disqus