整理一下自己的學(xué)習(xí)Aaron Saray 寫的PHP設(shè)計(jì)模式一些demo和自己的理解。大佬看完如果發(fā)現(xiàn)鄙人理解有誤請(qǐng)立即指出,感謝拍磚,跪求鞭打
/** * Builder 建造者模式 * ------------------------------------- * ** 來自說明 ** * * 建造者設(shè)計(jì)模式的母的是消除其他對(duì)象的復(fù)雜創(chuàng)建過程, * 使用建造者設(shè)計(jì)模式不僅是最佳的做法 * 而且在某個(gè)對(duì)象的構(gòu)造和配置方法改變時(shí)盡可能地減少重復(fù)的代碼 * * ===================================== * ** 應(yīng)用場(chǎng)景 ** * * 數(shù)據(jù)庫接口類 | 優(yōu)化基類 * * ------------------------------------- * * @version ${Id}$ * @author Shaowei Pu <54268491@qq.com> */
// 現(xiàn)在是這樣一個(gè)情況,您是學(xué)生個(gè)人檔案錄入員,你看到了你們Boss 在許多年前,你還是一個(gè)乳臭未干的小孩時(shí)寫的錄入類 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("男"); // 然后這樣就可以了,一個(gè)學(xué)生的完整信息就這么弄出來了 var_dump($worker->info); /* +---------------------------------------------------------------------- | array (size=3) | "name" => string "jacky" (length=5) | "old" => string "22" (length=2) | "gander" => string "男" (length=3) +---------------------------------------------------------------------- */ // 但是愛折騰的你從來不會(huì)放棄任何機(jī)會(huì),自從學(xué)習(xí)了建造者模式的你 總有種蠢蠢欲動(dòng),于是乎就有了下面的類 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(); // 然后這樣就可以了,一個(gè)學(xué)生的完整信息就這么弄出來了 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) +---------------------------------------------------------------------- */
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/22397.html
摘要:與工廠模式相比,建造者模式一般用來創(chuàng)建更為復(fù)雜的對(duì)象,因?yàn)閷?duì)象的創(chuàng)建過程更為復(fù)雜,因此將對(duì)象的創(chuàng)建過程獨(dú)立出來組成一個(gè)新的類導(dǎo)演類。 什么是建造者設(shè)計(jì)模式 建造者模式:將一個(gè)復(fù)雜對(duì)象的構(gòu)造與它的表示分離,使同樣的構(gòu)建過程可以創(chuàng)建不同的表示的設(shè)計(jì)模式。 設(shè)計(jì)場(chǎng)景: 有一個(gè)用戶的UserInfo類,創(chuàng)建這個(gè)類,需要?jiǎng)?chuàng)建用戶的姓名,年齡,愛好等信息,才能獲得用戶具體的信息結(jié)果。如: 這是一個(gè)...
整理一下自己的學(xué)習(xí)Aaron Saray 寫的PHP設(shè)計(jì)模式一些demo和自己的理解。大佬看完如果發(fā)現(xiàn)鄙人理解有誤請(qǐng)立即指出,感謝拍磚,跪求鞭打 /** * Builder 建造者模式 * ------------------------------------- * ** 來自說明 ** * * 建造者設(shè)計(jì)模式的母的是消除其他對(duì)象的復(fù)雜創(chuàng)建過程, * 使用建造者設(shè)計(jì)模式不僅是最佳...
摘要:你好,是我琉憶,程序員面試筆試系列圖書的作者。建造者模式介紹建造者模式又名生成器模式,是一種對(duì)象構(gòu)建模式。表示被構(gòu)造的復(fù)雜對(duì)象。創(chuàng)建該產(chǎn)品的內(nèi)部表示并定義它的裝配過程。 你好,是我琉憶,PHP程序員面試筆試系列圖書的作者。 本周(2019.3.11至3.15)的一三五更新的文章如下: 周一:PHP面試常考之設(shè)計(jì)模式——工廠模式周三:PHP面試常考之設(shè)計(jì)模式——建造者模式周五:PHP面...
閱讀 2723·2023-04-25 22:15
閱讀 1804·2021-11-19 09:40
閱讀 2149·2021-09-30 09:48
閱讀 3212·2021-09-03 10:36
閱讀 2026·2021-08-30 09:48
閱讀 1854·2021-08-24 10:00
閱讀 2725·2019-08-30 15:54
閱讀 699·2019-08-30 15:54