本篇內容介紹了“php常用的設計模式有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
成都創新互聯2013年至今,是專業互聯網技術服務公司,擁有項目網站設計、成都網站設計網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元振興做網站,已為上家服務,為振興各地企業和個人服務,聯系電話:13518219792
1,含義
某個類只有一個實例,自動實例化并向整個系統提供這個類的實例。
即:應用程序只會有這個類的一個實例存在。
多用在數據庫操作,線程池,緩存,打印機中。
2,特點
只有一個實例,必須有構造函數,標記為private
向其他成員提供訪問這個實例的靜態方法
必須自行創建這個實例,擁有一個保存類的實例的靜態成員變量
3,代碼
class SingleCase { private static $_instance; private function __construct() { echo 'i has been'; } public static function getInstance() { if(!isset(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; } private function __clone() { } }
備注:存在難以調試,隱藏著依賴關系
1,含義
工廠模式是一個類,而這個類包含一些方法,這些方法的作用或者功能就是實例化對象
工廠模式通常用來返回符合類似接口的不同的類
2,特點
工廠模式一般有一個命名為Factory的靜態方法
這個靜態方法接收一個參數
這個靜態方法根據參數,返回不同的對象實例
3,代碼
class Factory { static public function getUser($type) { if ($type == 1) { return new A(); } return new B(); } } interface FetchName { public function getName() } class A implements FetchName { public function getName() } class B implements FetchName { public function getName() } //使用 $user = Factory::getUser(1); $user->getName();
備注:有啥用?
如果一個系統,很多地方用 new User() 這種方式。有一天 new User('A');增加個參數,所有地方都需要變更;
如果一個系統,使用工廠模式User::getObj('1'); 假如參數1返回new User()這個對象實例; 有一天new User() 增加個參數,我只需要改工廠中的類實例。
1,含義
觀察者模式為您提供了避免組件之間緊密耦合的另一種方法
分為主題和觀察者,都需要實現接口和方法
主題里面進行觀察者注冊,并設置一個方法,這個方法的作用是調用觀察者的方法進行通知觀察者
2,特點
針對接口編程,不針對實現編程
觀察者模式定義對象的一對多依賴
當一個對象改變狀態時,它的所有依賴者都會收到通知并自動更新
3,代碼
class Paper { private $myObj = []; public function register($sub) { $this->myObj[] = $sub; } public function setMessage(){ if ($this->myObj) { foreach ($this->myObj as $obj) { $obj->update(); } } } } interface Observerable{ public function update(); } class Subscriber implements Observerable{ public function update(){ echo "Callback\n"; } }
備注:
$paper = new Paper();
$paper->register(new Subscriber());
//$paper->register(new Subscriber1());
$paper->setMessage();
只要任何類注冊,調用setMessage()方法。其他注冊過的類都會收到update()方法的通知。
“php常用的設計模式有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!
分享標題:php常用的設計模式有哪些
文章位置:http://vcdvsql.cn/article8/pepsop.html
成都網站建設公司_創新互聯,為您提供網站制作、、搜索引擎優化、定制開發、網站內鏈、虛擬主機
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯