成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

優(yōu)才公開(kāi)課筆記:php設(shè)計(jì)模式 (三)之創(chuàng)建者模式

bladefury / 2671人閱讀

摘要:繼續(xù)分享設(shè)計(jì)模式的公開(kāi)課,這是第三篇?jiǎng)?chuàng)建型模式之創(chuàng)建者模式設(shè)計(jì)模式的一般介紹在第一篇文章講了,不了解的可以先看看。

繼續(xù)分享設(shè)計(jì)模式的公開(kāi)課,這是第三篇?jiǎng)?chuàng)建型模式之創(chuàng)建者模式

設(shè)計(jì)模式的一般介紹在第一篇文章講了,不了解的可以先看看。

創(chuàng)建者模式:
在創(chuàng)建者模式中,客戶端不再負(fù)責(zé)對(duì)象的創(chuàng)建與組裝,而是把這個(gè)對(duì)象創(chuàng)建的責(zé)任交給其具體的創(chuàng)建者類(lèi),把組裝的責(zé)任交給組裝類(lèi),客戶端支付對(duì)對(duì)象的調(diào)用,從而明確了各個(gè)類(lèi)的職責(zé)。
應(yīng)用場(chǎng)景:創(chuàng)建非常復(fù)雜,分步驟組裝起來(lái)。

_goods[] = $goods;
       }

    public function addTicket($ticket) {
           $this->_tickets[] = $ticket;
    }

    public function printInfo() {
           printf("goods:%s, tickets:%sn", implode(",", $this->_goods), implode(",", $this->_tickets));
    }
}

//假如我們要還原購(gòu)物車(chē)的東西,比如用戶關(guān)閉瀏覽器后再打開(kāi)時(shí)會(huì)根據(jù)cookie還原
$data = array(
       "goods" => array("衣服", "鞋子"),
       "tickets" => array("減10"),
);

//如果不使用創(chuàng)建者模式,則需要業(yè)務(wù)類(lèi)里一步步還原購(gòu)物車(chē)
// $cart = new ShoppingCart();
// foreach ($data["goods"] as $goods) {
//   $cart->addGoods($goods);
// }
// foreach ($data["tickets"] as $ticket) {
//   $cart->addTicket($ticket);
// }
// $cart->printInfo();
// exit;


//我們提供創(chuàng)建者類(lèi)來(lái)封裝購(gòu)物車(chē)的數(shù)據(jù)組裝
class CardBuilder {
       private $_card;
       function __construct($card) {
              $this->_card = $card;
       }
       function build($data) {
              foreach ($data["goods"] as $goods) {
                     $this->_card->addGoods($goods);
              }
              foreach ($data["tickets"] as $ticket) {
                     $this->_card->addTicket($ticket);
              }
       }
       function getCrad() {
              return $this->_card;
       }
}

$cart = new ShoppingCart();
$builder = new CardBuilder($cart);
$builder->build($data);
echo "after builder:n";
$cart->printInfo();

?>

可以看出,使用創(chuàng)建者模式對(duì)內(nèi)部數(shù)據(jù)復(fù)雜的對(duì)象封裝數(shù)據(jù)組裝過(guò)程后,對(duì)外接口就會(huì)非常簡(jiǎn)單和規(guī)范,增加修改新數(shù)據(jù)項(xiàng)也不會(huì)對(duì)外部造成任何影響。

想了解更多,來(lái)聽(tīng)公開(kāi)課吧:http://www.ucai.cn/train?f=17

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/20770.html

相關(guān)文章

  • 優(yōu)才公開(kāi)筆記php設(shè)計(jì)模式 (二)工廠模式

    摘要:但本質(zhì)是,簡(jiǎn)單工廠并未嚴(yán)格遵循設(shè)計(jì)模式的開(kāi)閉原則,當(dāng)需要增加新產(chǎn)品時(shí)也需要修改工廠代碼。但是工廠方法則嚴(yán)格遵守開(kāi)閉原則,模式只負(fù)責(zé)抽象工廠接口,具體工廠交給客戶去擴(kuò)展。 最近開(kāi)展了三次設(shè)計(jì)模式的公開(kāi)課,現(xiàn)在來(lái)總結(jié)一下設(shè)計(jì)模式在PHP中的應(yīng)用,這是第二篇?jiǎng)?chuàng)建型模式之工廠模式。 設(shè)計(jì)模式的一般介紹在第一篇文章講了,這里就不重復(fù)。 工廠模式 實(shí)現(xiàn):定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類(lèi)決定實(shí)...

    aisuhua 評(píng)論0 收藏0
  • 優(yōu)才公開(kāi)筆記php設(shè)計(jì)模式(一) 單例模式

    摘要:最近開(kāi)展了三次設(shè)計(jì)模式的公開(kāi)課,現(xiàn)在來(lái)總結(jié)一下設(shè)計(jì)模式在中的應(yīng)用,這是第一篇?jiǎng)?chuàng)建型模式之單例模式。不過(guò)因?yàn)椴恢С侄嗑€程所以不需要考慮這個(gè)問(wèn)題了。 最近開(kāi)展了三次設(shè)計(jì)模式的公開(kāi)課,現(xiàn)在來(lái)總結(jié)一下設(shè)計(jì)模式在PHP中的應(yīng)用,這是第一篇?jiǎng)?chuàng)建型模式之單例模式。 一、設(shè)計(jì)模式簡(jiǎn)介 首先我們來(lái)認(rèn)識(shí)一下什么是設(shè)計(jì)模式: 設(shè)計(jì)模式是一套被反復(fù)使用、容易被他人理解的、可靠的代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。 設(shè)計(jì)模式不...

    guyan0319 評(píng)論0 收藏0
  • 優(yōu)才公開(kāi)筆記php設(shè)計(jì)模式 (四)原型模式

    摘要:繼續(xù)分享設(shè)計(jì)模式的公開(kāi)課,這是第四篇?jiǎng)?chuàng)建型模式之原型模式設(shè)計(jì)模式的一般介紹在第一篇文章講了,不了解的可以先看看。設(shè)計(jì)模式的第一部分,創(chuàng)建型模式就總結(jié)完了。下面還有兩部分結(jié)構(gòu)型設(shè)計(jì)模式和行為型設(shè)計(jì)模式稍后繼續(xù)。 繼續(xù)分享設(shè)計(jì)模式的公開(kāi)課,這是第四篇?jiǎng)?chuàng)建型模式之原型模式 設(shè)計(jì)模式的一般介紹在第一篇文章講了,不了解的可以先看看。 原型模式: 用原型實(shí)例指定創(chuàng)建對(duì)象的種類(lèi),并且通過(guò)拷貝這個(gè)...

    Maxiye 評(píng)論0 收藏0
  • 【編程堂】php設(shè)計(jì)模式(二):結(jié)構(gòu)型模式(續(xù))

    摘要:能夠協(xié)調(diào)調(diào)用者和被調(diào)用者,能夠在一定程度上降低系統(tǒng)的耦合性。特點(diǎn)低耦合性,獨(dú)立性好,安全性應(yīng)用客戶訪問(wèn)不到或者被訪問(wèn)者希望隱藏自己,所以通過(guò)代理來(lái)訪問(wèn)自己。 我們接著上面的幾種模式繼續(xù)講: 4、組合模式 將對(duì)象組合成樹(shù)形結(jié)構(gòu)表示部分-整體的層次結(jié)構(gòu)。 特點(diǎn):靈活性強(qiáng) 應(yīng)用:對(duì)象的部分-整體的層次結(jié)構(gòu),模糊組合對(duì)象和簡(jiǎn)單對(duì)象處理問(wèn)題 代碼實(shí)現(xiàn) /** 組合模式* *///繼承模式clas...

    Nekron 評(píng)論0 收藏0
  • 技術(shù)攻略】php設(shè)計(jì)模式(一):簡(jiǎn)介及創(chuàng)建模式

    摘要:我們分三篇文章來(lái)總結(jié)一下設(shè)計(jì)模式在中的應(yīng)用,這是第一篇?jiǎng)?chuàng)建型模式。二提煉設(shè)計(jì)模式的幾個(gè)原則開(kāi)閉原則模塊應(yīng)對(duì)擴(kuò)展開(kāi)放,而對(duì)修改關(guān)閉。工廠模式實(shí)現(xiàn)定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類(lèi)決定實(shí)例化哪一個(gè)類(lèi)。設(shè)計(jì)模式的第一部分,創(chuàng)建型模式就總結(jié)完了。 我們分三篇文章來(lái)總結(jié)一下設(shè)計(jì)模式在PHP中的應(yīng)用,這是第一篇?jiǎng)?chuàng)建型模式。一、設(shè)計(jì)模式簡(jiǎn)介 首先我們來(lái)認(rèn)識(shí)一下什么是設(shè)計(jì)模式: 設(shè)計(jì)模式是一套被反復(fù)使...

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

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

0條評(píng)論

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