php單例模式是什麼意思
一個類別有且僅有一個實例,並且自行實例化後提供給整個程式使用,或者可以理解為在整個程式運行期間,保證這個類別有且僅一個實例,並對外提供一個能夠存取它的全域存取點。
php單例模式範例
class Singleton { private static $_instance;//保存实例化出来的单例 //构造函数私有化,确保单例类不能通过其它对象 new 出来 private final function __construct() {} //定义私有的__clone()方法,这是确保单例类不能被复制或克隆,否则又不是单例了。 private function __clone() {} public static function getInstance() { //检测类是否被实例化,如果没有实例化,就 new 一下,已经实例化就直接返回。 if ( ! (self::$_instance instanceof self) ) { self::$_instance = new test(); } return self::$_instance; } } //拿到单例实例,多次调用都是同一个实例 Singleton::getInstance();
優點
1、提供了對唯一實例達到受控存取。
2、由於系統記憶體中只存在一個對象,因此可以節約系統資源,對於一些需要頻繁建立和銷毀的物件單例模式無疑可以提高系統的效能。
缺點
1、單例模式破壞了常見的類別模式以及沒有抽象層,因擴展時有很大的困難。
2、單例模式為了能夠保持運行期間唯一並且能夠被全域訪問,污染了全域變數。
以上是php單例模式是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!