整理一下自己的學習Aaron Saray 寫的PHP設計模式一些demo和自己的理解。大佬看完如果發現鄙人理解有誤請立即指出,感謝拍磚,跪求鞭打
/** * Builder 建造者模式 * ------------------------------------- * ** 來自說明 ** * * 建造者設計模式的母的是消除其他對象的復雜創建過程, * 使用建造者設計模式不僅是最佳的做法 * 而且在某個對象的構造和配置方法改變時盡可能地減少重復的代碼 * * ===================================== * ** 應用場景 ** * * 數據庫接口類 | 優化基類 * * ------------------------------------- * * @version ${Id}$ * @author Shaowei Pu <54268491@qq.com> */
// 現在是這樣一個情況,您是學生個人檔案錄入員,你看到了你們Boss 在許多年前,你還是一個乳臭未干的小孩時寫的錄入類 class Entering { public $info = []; public function setName( $name ){ $this->info["name"] = $name; } public function setOld( $old ){ $this->info["old"] = $old; } public function setGender( $gender ){ $this->info["gander"] = $gender; } } // 然后 $worker = new Entering; $worker->setName("jacky"); $worker->setOld("22"); $worker->setGender("男"); // 然后這樣就可以了,一個學生的完整信息就這么弄出來了 var_dump($worker->info); /* +---------------------------------------------------------------------- | array (size=3) | "name" => string "jacky" (length=5) | "old" => string "22" (length=2) | "gander" => string "男" (length=3) +---------------------------------------------------------------------- */ // 但是愛折騰的你從來不會放棄任何機會,自從學習了建造者模式的你 總有種蠢蠢欲動,于是乎就有了下面的類 class EnteringBuilder{ protected $_baseObject = null; protected $_newInfo = [] ; public function __construct( array $info ){ $this->_baseObject = new Entering; $this->_newInfo = $info; } public function build(){ $this->_baseObject->setName ( $this->_newInfo["name"]); $this->_baseObject->setOld ( $this->_newInfo["old"]); $this->_baseObject->setGender( $this->_newInfo["gander"]); } public function getInfo(){ return $this->_baseObject->info; } } // 然后這樣 $new_worker = new EnteringBuilder([ "name" => "lucy", "old" => 22, "gander" => "女", ]); $new_worker->build(); // 然后這樣就可以了,一個學生的完整信息就這么弄出來了 var_dump($new_worker->getInfo()); /* +---------------------------------------------------------------------- | array (size=22) | "Host" => string "localhost" (length=9) | "Db" => string "sys" (length=3) | "User" => string "mysql.sys" (length=9) | "Select_priv" => string "N" (length=1) | "Insert_priv" => string "N" (length=1) | "Update_priv" => string "N" (length=1) | "Delete_priv" => string "N" (length=1) | "Create_priv" => string "N" (length=1) | "Drop_priv" => string "N" (length=1) | "Grant_priv" => string "N" (length=1) | "References_priv" => string "N" (length=1) | "Index_priv" => string "N" (length=1) | "Alter_priv" => string "N" (length=1) | "Create_tmp_table_priv" => string "N" (length=1) | "Lock_tables_priv" => string "N" (length=1) | "Create_view_priv" => string "N" (length=1) | "Show_view_priv" => string "N" (length=1) | "Create_routine_priv" => string "N" (length=1) | "Alter_routine_priv" => string "N" (length=1) | "Execute_priv" => string "N" (length=1) | "Event_priv" => string "N" (length=1) | "Trigger_priv" => string "Y" (length=1) +---------------------------------------------------------------------- */
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39456.html
摘要:與工廠模式相比,建造者模式一般用來創建更為復雜的對象,因為對象的創建過程更為復雜,因此將對象的創建過程獨立出來組成一個新的類導演類。 什么是建造者設計模式 建造者模式:將一個復雜對象的構造與它的表示分離,使同樣的構建過程可以創建不同的表示的設計模式。 設計場景: 有一個用戶的UserInfo類,創建這個類,需要創建用戶的姓名,年齡,愛好等信息,才能獲得用戶具體的信息結果。如: 這是一個...
整理一下自己的學習Aaron Saray 寫的PHP設計模式一些demo和自己的理解。大佬看完如果發現鄙人理解有誤請立即指出,感謝拍磚,跪求鞭打 /** * Builder 建造者模式 * ------------------------------------- * ** 來自說明 ** * * 建造者設計模式的母的是消除其他對象的復雜創建過程, * 使用建造者設計模式不僅是最佳...
摘要:你好,是我琉憶,程序員面試筆試系列圖書的作者。建造者模式介紹建造者模式又名生成器模式,是一種對象構建模式。表示被構造的復雜對象。創建該產品的內部表示并定義它的裝配過程。 你好,是我琉憶,PHP程序員面試筆試系列圖書的作者。 本周(2019.3.11至3.15)的一三五更新的文章如下: 周一:PHP面試常考之設計模式——工廠模式周三:PHP面試常考之設計模式——建造者模式周五:PHP面...
閱讀 3775·2021-09-02 09:53
閱讀 2753·2021-07-30 14:57
閱讀 3495·2019-08-30 13:09
閱讀 1200·2019-08-29 13:25
閱讀 813·2019-08-29 12:28
閱讀 1459·2019-08-29 12:26
閱讀 1133·2019-08-28 17:58
閱讀 3308·2019-08-26 13:28