/**
* 單例模式
* 單例模式,使某個類的物件僅允許建立乙個。建構函式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設計模式介紹 第七章 策略模式...