php的單例模式

2021-07-30 11:28:25 字數 992 閱讀 5808

據說,單例模式是設計模式中最簡單的一種。

不多說,先上**,然後解說,一共兩個檔案:

danli.class

<?php

class

danli

//用於訪問類的例項的公共的靜態方法

static

public

function getinstance()

return

self::$_instance;

}//類的其它方法

public

function test()

}

index.php

<?php

//載入類檔案

require "

danli.php";

//第一次呼叫類的例項

$first =danli::getinstance();

$first->test();

//第二次呼叫類的例項

$second =danli::getinstance();

$second->test();

輸出結果:

例項化這是乙個構造方法

呼叫成功

呼叫成功

以上是php單例模式的簡單實現,通過結果可以看到danli類只例項化了一次。

接下來說一下單例模式。

簡單點兒說,單例模式就是讓類的乙個物件成為系統中的唯一例項,避免大量的 new 操作消耗的資源,也方便設定鉤子輸出日誌資訊等。

關於單例模式在網上可以收到很多很詳細的解說,這裡不再複述,咱們還是詳細說一下php的單例模式的實現。

從上面的**可以看出來,php的單例模式實現要求:

1、乙個private的__construct是必須的,單例類不能在其它類中例項化,只能被自身例項化;

2、擁有乙個儲存類的例項的靜態成員變數;

3、乙個靜態的公共方法用於例項化這個類,並訪問這個類的例項;

PHP單例模式

模式對於oop開發人員尤其有用,因為他有助於建立穩定的api,並且仍然保持一定的靈活度。一種模式可以幫助我們定義負責完成特定任務的物件,還可以允許我們全部修改掉某個類而不用修改與這些類打交道的 前者被稱為類的職責,後者被稱為類的多型性。單例模式被當作職責模式,他用來在應用程式中建立乙個單一的功能訪問...

php單例模式

單例模式 單例類 1 建構函式需要標記為private 訪問控制 防止外部 使用new操作符建立物件 單例類不能在其他類中例項化,只能被其自身例項化 2 擁有乙個儲存類的例項的靜態成員變數 3 擁有乙個訪問這個例項的公共的靜態方法 常用getinstance 方法進行例項化單例類,通過instanc...

php 單例模式

單例模式 身份證號碼 單例類identitycardno 身份證號碼類 class identitycardno public function getinstance else return self instance private function setidentitycardno no p...