PHP設計模式 單例模式

2021-08-24 20:46:54 字數 859 閱讀 6404

最近在使用redis,一直忙於工作沒有整理,都是每用到乙個地方,都需要 new 一下。今天得空整理一下,寫的不好的地方,望指正!

1. 介紹

單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。是一種常見的設計模式,在計算機系統中,執行緒池、快取、日誌物件、對話方塊、印表機、資料庫操作、顯示卡的驅動程式常被設計成單例。

2. 特點

a.只能有乙個例項。

b.必須自行建立這個例項。

c.必須給其他物件提供這一例項。

php乙個主要應用場合就是應用程式與資料庫打交道的場景,在乙個應用中會存在大量的資料庫操作,針對資料庫控制代碼連線資料庫的行為,使用單例模式可以避免大量的new操作。因為每一次new操作都會消耗系統和記憶體的資源。

3. 組成部分(三私一公)

1. 私有的靜態變數 儲存全域性例項

2. 私有的構造方法 防止外界例項化物件

3. 私有的轉殖方法  防止外界轉殖物件

4. 公共的靜態方法,單例的統一訪問入口

4. 下面是我整理的redis單例

<?php

class redisoperate extends redis

//私有轉殖函式,防止外辦轉殖物件

private function __clone()

//靜態方法,單例統一訪問入口

public static function getinstance()

return self::$_instance;

}}?>

php設計模式 單例模式

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

PHP設計模式 單例模式

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

PHP設計模式 單例模式

單例模式的必要性 1.目的 確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。2.要點 1 某乙個類只能有乙個例項 2 必須自行建立這個例項 3 必須自行向整個系統提供這個例項。3.作用 避免重複例項化,節省系統資源。例如在資料庫操作方面,會大量存在資料庫連線操作,單例類可以避免多次...