設計模式 單例模式

2021-10-23 12:25:06 字數 1011 閱讀 2468

開放封閉原則:乙個軟體實體如類、模組和函式應該對擴充套件開放,對修改關閉。

黎克特制替換原則:所有引用基類的地方必須能透明地使用其子類的物件.

依賴倒置原則:高層模組不應該依賴低層模組,二者都應該依賴其抽象;抽象不應該依賴細節;細節應該依賴抽象。

單一職責原則:不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。

介面隔離原則:客戶端不應該依賴它不需要的介面;乙個類對另乙個類的依賴應該建立在最小的介面上。

迪公尺特法則:乙個物件應該對其他物件保持最少的了解。

首先來看一下單例模式。在某些系統中,為了節省記憶體資源、保證資料內容的一致性,對某些類要求只能建立乙個例項,這就是所謂的單例模式。

所謂單例模式,即在應用程式中最多只有該類的乙個例項存在,一旦建立,就會一直存在於記憶體中。

單例模式有 3 個特點:

單例類只有乙個例項物件;

單例類不能直接例項化建立,而是只能由類本身例項化。建構函式必須標記為private,從而防止類被例項化。

單例類對外提供乙個訪問該單例的全域性訪問點;

單例模式的主要角色如下。

//防止使用clone轉殖物件

private function __clone(){}

/*** 靜態工廠方法,返還此類的唯一例項

*/static public function getinstance()

return self::$instance;

}/**

* 測試用方法

*/public function test()

}$sing = singleton::getinstance();

$sing->test();

$sing2 = new singleton()

以下是它通常適用的場景的特點。

設計模式 單例模式

單例模式 singleton pattern 是乙個比較簡單的模式,其定義如下 ensure a class has only one instance,and provide a golbal point of acess to it.確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個...

設計模式 單例模式

class testsingleton static public function instance return self testsingleton private function clone public function setsinvar sinvar public function ...

設計模式 單例模式

單例模式的目的是保證類在系統中只被例項化一次,由該唯一的例項來為系統提供服務.單例模式主要用於保證服務的統一,比如獲取統一的編號服務,模仿oracle的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...