PHP設計模式初探 詳解單例模式

2021-09-24 11:34:15 字數 1034 閱讀 6605

2019獨角獸企業重金招聘python工程師標準》

常見的設計模式有 24 種,其實就常規開發來說,了解其中的七八種就足夠了。工廠模式是最常見的,一般初學物件導向首先接觸的就是工廠模式,不多廢話。

單例模式( wikipedia )是指類只維持乙個例項化後的物件,特別適合於建立資料庫鏈結。使用單例模式維護資料庫鏈結能夠避免重複建立資料庫鏈結,在單一程序中節省不必要的資源消耗。

要做到在同乙個程序中維護同乙個資源,可能首先想到的是乙個全域性變數。一旦這個全域性變數在外部被修改了,那麼單例模式就完全失效了。要理解單例模式,首先要搞懂靜態變數的概念。

function test() 

echo test();

echo test();

由以上程式的執行結果可以得知,static 關鍵字使得變數成為乙個靜態變數。

對於靜態區域性變數來說,在函式內以static宣告的變數雖然與自動區域性變數的作用域相同(即作用域都只限於函式內),但儲存空間是以靜態分配而非預設的自動分配方式獲取的,因而儲存空間所在區域不同(一般來說,靜態分配時儲存空間於編譯時在程式資料段分配,一次分配全程有效;而自動分配時儲存空間則是於呼叫棧上分配,只在呼叫時分配與釋放),且兩次呼叫間變數值始終保持一致;(via: wikipedia)

有了靜態變數,我們就可以實現乙個完整的單例模式了。

require_once("db.php");

class databaseconnection

return $db;

}private $_handle = null;

private function __construct()

public function handle()

}print( "handle = ".databaseconnection::get()->handle()."\n" );

print( "handle = ".databaseconnection::get()->handle()."\n" );

設計模式初探 單例模式

所謂的單例模式就是指的乙個類只提供乙個物件例項,而且所提供的例項只有乙個訪問的入口 方法 常見的應用場景 常見的有五種實現方式 所謂的餓漢式就是,讓單例物件在類建立時就被載入,像乙個餓漢。package cn.liu.single 餓漢式單例模式 author administrator publi...

初探設計模式 單例模式

單例模式是我們經常使用的一種設計模式,那麼讓我們自己來設計一種單例模式的話,我們該如何設計呢?設計的方式有很多種,我們依次來看一下 首先是第一種 1 2 簡單的方式 在併發執行的時候可能存在多個例項3 4 author cuibin 5 create 2017 08 30 20 386 7publi...

初探Java設計模式 單例模式

單例模式在需要只有乙個例項的場合中使用,比如配置檔案。單例模式分為 餓漢模式 和 懶漢模式。下面是餓漢模式 package com.example.singletone public class singleton 2.建立private static 物件例項 private static sin...