龚哥哥 爱生活、做自己!
PHP单例模式 设计模式 面向对象
发表于 2015-9-1 | PHP
<?php

/**
 * 单例模式
 * @author  Devil
 * @version v_0.0.1
 */
class Singleton
{
	private $parem;

	/**
	 * [__construct 构造方法]
	 * @param [mixed] $param [参数]
	 */
	private function __construct($param)
	{
		$this->param = $param;
	}

	/**
	 * [Instantiate 静态方法, 用于实例化类]
	 * @param  [mixed] $param [参数]
	 * @return [object]   [类对象]
	 */
	public static function Instantiate($param)
	{
		static $object = null;
		if(!is_object($object)) $object = new self($param);
		return $object;
	}

	/**
	 * [Show 测试方法]
	 */
	public function Show()
	{
		print_r($this->param);
	}
}



/**
 * 使用列子
 */
$param = array('test', 'demo', 'devil');
$obj = Singleton::Instantiate($param);
$obj->Show();

/**
 * $obj = Singleton::Instantiate($param);
 * 不管在项目中多少次这么对类进行实例化,都不会重复创建类对象。
 * $object 被定义成静态变量,不能被第二次赋值。
 * 只要$object是一个对象就直接返回当前对象,则进行实例化并返回。
 *
 * 单例模式可以防止重复创建对象,减轻内存开销。
 */

?>

发表评论:

TOP