單例模式
觀察者模式
責任鏈模式
註冊樹模式
工廠設計模式提供獲取某個物件的新例項的乙個介面,同時使呼叫**避免確定實際例項化基類步驟。
php中能夠建立基於變數內容的類的新例項,減少主**流中的基於條件複雜性; 同時如果類發生改變不需要所有的地方進行修改,只需要在工廠中進行修改 (無論物件被修改或者新增其他物件,factory物件呼叫方式仍讓是相同的)(集中例項化)
<?php
class a
}class b
function index()
}$test = new b('a');
$test->index();
作為物件的建立模式,單例模式確保某乙個類只有乙個例項,並且對外提供這個全域性例項的訪問入口。它不會建立例項副本,而是會向單例類內部儲存的例項返回乙個引用。
需要乙個儲存類的唯一例項的靜態成員變數。
建構函式和轉殖函式必須宣告為私有的,防止外部程式建立或複製例項副本。
必須提供乙個訪問這個例項的公共靜態方法,從而返回唯一例項的乙個引用。
使用單例模式的好處很大,以資料庫操作為例。若不採用單例模式,當程式**現大量資料庫操作時,每次都要執行new操作,
每次都會消耗大量的記憶體資源和系統資源,而且每次開啟和關閉資料庫連線都是對資料庫的一種極大考驗和浪費。使用了單例模式,只需要例項化一次,不需要每次都執行new操作,極大降低了資源的耗費。
class a
/*** 防止轉殖
*/private function __clone()
public static function getinstance()
return self::$instance;
}public function test()
}a::getinstance();
一種一對多的依賴關係,讓多個觀察者物件監聽某乙個主題物件。這個主題物件在狀態發生變化時,會通知所有的觀察者物件,使他們能夠自動更新自己
當乙個物件的改變需要同事改變其他物件的時候,而且它不知道具體有多少物件有待改變時,應該考慮使用觀察者模式。
觀察者模式所作的工作其實就是在接觸耦合。讓耦合的雙方都依賴於抽象類,而不是依賴於具體,從而使得各自的變化都不會影響另一邊的變化
<?php
//被觀察者介面
inte***ce observable
//觀察者介面
inte***ce observe
class login implements observable
public function del($object)
public function inform()
}}class a implements observe
}class b implements observe
}$new = new login();
$new ->add(new a());
$new ->add(new b());
$new->inform();
又叫職責鏈模式。包含了一些命令物件和一些處理物件,每個處理物件決定它能處理那些命令物件,它也知道應該把自己不能處理的命令物件交下乙個處理物件
可以降低系統的耦合度,簡化物件的相互連線,同時增強給物件指派職責的靈活性,增加新的請求處理類也很方便;其主要缺點在於不能保證請求一定被接收,且對於比較長的職責鏈,請求的處理可能涉及到多個處理物件,系統效能將受到一定影響,而且在進行**除錯時不太方便
<?php
$num = 10;
class a
else
}}class b
else
}}class c
}new a($num);
將物件例項註冊到一棵全域性的物件樹上,需要的時候從物件樹上採摘。
把建立出來的物件註冊到全域性樹上,需要的時候取下來用,可以很好的管理建立的物件。
<?php
class login
self::$instance[$key] = new $object();
}//銷魂果實
public static function del($key)
//取得果實
public static function get($key)
return '沒有例項';}}
class a
}//新增例項
login::add(0,'a');
//獲取例項
(login::get(0))->index();
//刪除例項
login::del(0);
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設計模式介紹 第七章 策略模式...