php設計模式 一 單例模式

2021-08-27 13:58:12 字數 1201 閱讀 3754

<?php 

/** * 應用場景:

* 資料庫連線這種比較費資源的操作;

* 我們希望整個應用只實列化一次

* * 結構:

* 4私1公

* 私有化構造方法:防止使用 new 建立多個實列

* 私有化轉殖方法: 防止clone多個實列

* 私有化重建方法:防止反序列化

* 私有化靜態屬性:防止直接訪問儲存實列的屬性

*/class signle1

return static::$instance;

}public function __construct()

public function __clone()

public function __wakeup()

}$obj = signle1::getinstance();

$obj2 = new signle1();

$obj3 = clone $obj2;

$obj4 = unserialize(serialize($obj));

var_dump($obj);

echo '';

var_dump($obj2);

echo '';

var_dump($obj3);

echo '';

var_dump($obj4);

echo '';

class db2

return self::$instance;

}/**

* 防止 new 多個實列

* db2 constructor.

*/private function __construct()

/*** 防止clone 多個實列

*/private function __clone()

/*** 防止反序列化

執行**可以看到 **signle1類實列的控制代碼是不一樣的,

而db類這兩個控制代碼都是5,一直是乙個實列。

PHP設計模式(一)單例模式

在物件導向程式設計中,我們會用到很多設計模式,比如常見的單例模式,工廠模式,模式,觀察者模式等等。每乙個模式,都能解決特定問題,是很多前輩經過很多實踐總結出來的。掌握並靈活運用它們,對於物件導向程式設計有很大的幫助。php中常用的設計模式有 class singlepattern return in...

php設計模式 單例模式

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

PHP設計模式 單例模式

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