單例模式(singleton)
/*** * class singleton 單例模式
* 單例類不能再其它類中直接例項化,只能被其自身例項化。它不會建立例項副本,而是會向單例類內部儲存的例項返回乙個引用。
* 1.私有的建構函式、轉殖函式,防止外部**new、clone
* 2.私有的靜態的成員變數來儲存類的例項
* 3.公共的靜態函式來訪問類的例項 */
class
singleton
return self::$instance
; }
private
function
__construct()
private
function
__clone()
}$a = singleton::getinstance();
$b = singleton::getinstance();
/*判斷兩個類是否為同乙個類
*/echo
$a === $b ? 1 : 0; //
1exit;
工廠模式
註冊模式
介面卡模式
觀察者模式
依賴注入模式
依賴注入di、控制反轉ioc、反射
控制反轉ioc是一種思想,依賴注入di是實施這種思想的方法
面向介面程式設計
使用時例項化並建立連線
構造器注入、setter、介面注入
容器模式
迭代器iterator
迭代器實際是乙個實現了iterator的類,可以用foreach進行遍歷。
1<?php
2class sample implements
iterator
8public
function
current
()12
public
function
key()
16public
function
next
()20
public
function
rewind
()23
public
function send ( $value)27
}28public
function
valid ()32}
33$sample = new sample([1,2,3]);
34foreach ($sample
as$k =>$v
)>>>>> valid current key next
可以看到foreach 是先呼叫valid判斷迭代器是否有效,然後再呼叫current獲取當前值,同時呼叫next移動key到指向下乙個值(輸出key是因為 $k=>$v的緣故)。
生成器生成器提供了一種更容易的方法來實現簡單的物件迭代,相比較定義類實現 iterator 介面的方式,效能開銷和複雜性大大降低。
生成器允許你在 foreach **塊中寫**來迭代一組資料而不需要在記憶體中建立乙個陣列, 那會使你的記憶體達到上限,或者會佔據可觀的處理時間。
相反,你可以寫乙個生成器函式,就像乙個普通的自定義函式一樣, 和普通函式只返回一次不同的是, 生成器可以根據需要 yield 多次,以便生成需要迭代的值。
php 將會在每次需要值的時候呼叫生成器函式,並在產生乙個值之後儲存生成器的狀態,這樣它就可以在需要產生下乙個值的時候恢復呼叫狀態。
1<?php
2function
gen_one_to_three() 7}
8$generator =gen_one_to_three();
9foreach ($generator
as$value
) 12
var_dump($generator); //
實際上是generator物件
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設計模式介紹 第七章 策略模式...