国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP設(shè)計(jì)模式-Builder 建造者模式

hizengzeng / 1978人閱讀

整理一下自己的學(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

相關(guān)文章

  • PHP設(shè)計(jì)模式(五)建造模式Builder

    摘要:與工廠模式相比,建造者模式一般用來創(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è)...

    KunMinX 評(píng)論0 收藏0
  • PHP設(shè)計(jì)模式-Builder 建造模式

    整理一下自己的學(xué)習(xí)Aaron Saray 寫的PHP設(shè)計(jì)模式一些demo和自己的理解。大佬看完如果發(fā)現(xiàn)鄙人理解有誤請(qǐng)立即指出,感謝拍磚,跪求鞭打 /** * Builder 建造者模式 * ------------------------------------- * ** 來自說明 ** * * 建造者設(shè)計(jì)模式的母的是消除其他對(duì)象的復(fù)雜創(chuàng)建過程, * 使用建造者設(shè)計(jì)模式不僅是最佳...

    lushan 評(píng)論0 收藏0
  • PHP面試常考之設(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面...

    alexnevsky 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<