1. 程式人生 > >PHP單例模式 構造方法

PHP單例模式 構造方法

對於單例模式,首先說一下好處:

    單例模式通俗的來說就是在PHP的類例項化中,他的例項化物件是唯一的。

    使用單例模式首先需要滿足以下3點:

1. 它們必須擁有一個建構函式,並且必須被標記為private

2. 它們擁有一個儲存類的例項的靜態成員變數

3. 它們擁有一個訪問這個例項的公共的靜態方法

    例項:

<?php 
/**
* 單例模式
*/
class Demo
{
	// 1.靜態私有屬性,儲存當前類的例項
	private static $instance = null;

	// 2.構造方法私有化,禁止new例項
	private function __construct()
	{
		# code...
	}

	// 3.克隆方法私有化,禁止外部克隆
	private function __clone()
	{
		// TODO:Implement __clone() methed.
	}

	// 4.生成當前類的唯一例項
	public static function getInstance()
	{
		// 首先進行判斷,如果不是當前類的例項,那麼例項化當前類建立新的例項
		if(!self::$instance instanceof self)
		{
			self::$instance = new self();
		}

		return self::$instance;
	}
}

$db = Demo::getInstance();
/*$dc = new Demo();*/
var_dump($db);
 ?>

單例類不能再其它類中直接例項化,只能被其自身例項化。它不會建立例項副本,而是會向單例類內部儲存的例項返回一個引用。