PHP設計模式 單例模式

2021-09-13 03:01:45 字數 1016 閱讀 6760

單例模式是一種比較常用的設計模式,在很多框架中可以看到它的身影。通過單例模式可以確保類只有乙個例項化,從而方便對例項個數的控制並節約系統資源。

<?php

use \exception;

class singleton

return self::$instance;

}/**

* 禁止物件直接在外部例項

/private function __construct(){}

/*** 防止轉殖操作

/final public function __clone()

}

乙個系統中可能會多次使用到單例模式,為了更加方便的建立,可以試著建立乙個通用的抽象:

// singletonfacotry.php

<?php

use \exception;

abstract class singletonfacotry

return self::$instance[$callclass];

}abstract protected static function getinstanceaccessor();

/*** 禁止物件直接在外部例項

/protected function __construct(){}

/*** 防止轉殖操作

/final public function __clone()

}

// a.php 

<?php

class a extends singletonfactory

}$obj1 = a::getinstance();

$obj1->num++;

var_dump($obj1->num); // 1

$obj2 = a::getinstance();

$obj2->num++;

var_dump($obj2->num); // 2

php設計模式 單例模式

靜態方法所訪問的屬性也必須是static的。靜態方法呼叫靜態變數使用方式是self 靜態變數名 靜態方法呼叫靜態方法使用方式是self 靜態方法名 類的例項可以訪問靜態方法,但不可以訪問靜態變數 package name subpackage name category name author ad...

PHP設計模式 單例模式

單例模式就是保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。通常我們可以讓乙個全域性變數使得乙個物件被訪問,但是不能防止你例項化多個變數,乙個最好的辦法就是讓類自身負責儲存它的唯一例項,這個類可以保證沒有其它例項可被建立,並且他可以提供乙個訪問該例項的方法。下面提供兩種單例模式的例子 例1 ...

PHP設計模式 單例模式

單例模式的必要性 1.目的 確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。2.要點 1 某乙個類只能有乙個例項 2 必須自行建立這個例項 3 必須自行向整個系統提供這個例項。3.作用 避免重複例項化,節省系統資源。例如在資料庫操作方面,會大量存在資料庫連線操作,單例類可以避免多次...