PHP設計模式

2021-10-10 08:13:34 字數 2095 閱讀 3412

/**

* 單例模式

* 單例模式,使某個類的物件僅允許建立乙個。建構函式private修飾,申明乙個static getinstance方法,

* 在該方法裡建立該物件的例項。如果該例項已經存在,則不建立。比如只需要建立乙個資料庫連線。

* * 必須先宣告乙個靜態私有屬性:用來儲存當前類的例項

* 1. 為什麼必須是靜態的?因為靜態成員屬於類,並被類所有例項所共享

* 2. 為什麼必須是私有的?不允許外部直接訪問,僅允許通過類方法控制方法

* 3. 為什麼要有初始值null,因為類內部訪問介面需要檢測例項的狀態,判斷是否需要例項化

*/class

site

//轉殖方法私有化:禁止從外部轉殖物件

private

function

__clone()

//獲取本類唯一例項

public

static

function

getinstance

($sitename =

'依然'

)//如果已經有了當前類例項,就直接返回,不要重複建立類例項

return self:

:$instance;

}}

/**

* 工廠模式

* 用工廠模式來生成本類的單一例項

*/class

factory

}

/**

* 註冊模式

* 物件註冊樹

* 1。註冊:set(),把物件掛到樹上

* 2。獲取:get(),把物件取下來用

* 3。登出:_unset(),把物件吃掉

*/class

register

//從樹上面去下物件

public

static

function

get($alias)

//把樹上的物件吃掉

public

static

function

_unset

($alias)

}//將site類的例項上樹,放到物件池

register:

:set

('site'

, factory:

:create()

);//從樹上取乙個物件下來

$obj = register:

:get

('site');

//檢視一下這個物件

var_dump

($obj)

;echo $obj-

>sitename;

/**

* 介面卡模式

* 將各種截然不同的函式介面封裝成統一的api。

* php中的資料庫操作有mysql,mysqli,pdo三種,可以用介面卡模式統一成一致,使不同的資料庫操作,統一成一樣的api。

* 類似的場景還有cache介面卡,可以將memcache,redis,file,apc等不同的快取函式,統一成一致。

* 首先定義乙個介面(有幾個方法,以及相應的引數)。然後,有幾種不同的情況,就寫幾個類實現該介面。將完成相似功能的函式,統一成一致的方法。

*/inte***ce

idatabase

/**

* mysql連線

*/class

mysql

implements

idatabase

function

query

($sql)

function

close()

}

/**

* mysqli連線

*/class

mysqli

implements

idatabasei

function

query

($sql)

function

close()

}

其他模式有待更新

php設計 PHP常用設計模式

1 單例模式指在整個應用中只有乙個物件例項的設計模式 class single public rand static private instance 類直接呼叫 final private function construct private防止外部new this rand mt rand 1,...

PHP設計模式 工廠設計模式

工廠模式,如其名稱一樣,就是乙個工廠,用於建立產品。使用工廠模式的好處就是請求者只需要發出請求,具體的例項化過程交給工廠模式,省去了new的過程。並且如果後期開發,類名發生變化,只需要調整工廠模式中一行new相關 不需要修改一大堆 最簡單的工廠模式,實際上就是乙個switch case結構,通過傳入...

php設計模式

php設計模式介紹 導言 php設計模式介紹 第一章 程式設計慣用法 php設計模式介紹 第二章 值物件模式 php設計模式介紹 第三章 工廠模式 php設計模式介紹 第四章 單條模式 php設計模式介紹 第五章 註冊模式 php設計模式介紹 第六章 偽物件模式 php設計模式介紹 第七章 策略模式...