最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

大話PHP設(shè)計(jì)模式

Rango PHP開(kāi)發(fā)工程師
難度中級(jí)
時(shí)長(zhǎng) 3小時(shí)30分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.57
140人評(píng)價(jià) 查看評(píng)價(jià)
9.7 內(nèi)容實(shí)用
9.4 簡(jiǎn)潔易懂
9.6 邏輯清晰
  • 適配器模式,例子 數(shù)據(jù)庫(kù)連接,定義一個(gè)接口,mysql,mysqli都繼承接口,實(shí)現(xiàn)同樣的方法,調(diào)用時(shí)實(shí)例化不同的類即可

    查看全部
    0 采集 收起 來(lái)源:[php]適配器模式

    2019-12-24

  • 工廠模式

    用工廠方法或者類來(lái)實(shí)例化對(duì)象,而不是直接new。
    首先我們需要?jiǎng)?chuàng)建一個(gè)工廠類,比如Factory.php。如果不使用工廠模式的,我們需要一個(gè)對(duì)象的時(shí)候通常需要
    new Inexistence\girlfriend();
    然而我們一般不只在一個(gè)地方需要這個(gè)對(duì)象,這個(gè)時(shí)候一旦對(duì)象發(fā)生變更,或者對(duì)象的某些屬性發(fā)生變化,我們就需要一個(gè)一個(gè)的來(lái)改,非常麻煩。這個(gè)時(shí)候我們引入工廠類,在Factory.php

    http://img1.sycdn.imooc.com//5de3d7130001311806060442.jpg


    然后每次調(diào)用時(shí)$GF1 = Imagination\Factory::getGirlfriend()就可以避免四處修改的問(wèn)題。
    在Laravel中這樣的設(shè)計(jì)模式很常見(jiàn)。

    http://img1.sycdn.imooc.com//5de3d7640001044f12240626.jpg


    單例模式

    即確保某個(gè)類的對(duì)象僅被創(chuàng)建一次。比如我們?cè)赿atabase里面存了很多女生的聯(lián)系方式,如果我們用pdo的話每次查找都會(huì)new一個(gè)對(duì)象,勢(shì)必會(huì)造成資源的浪費(fèi)。所以我們就在connect之前做個(gè)判斷。

    http://img1.sycdn.imooc.com//5de3d7980001029d05801164.jpg


    這里面比較關(guān)鍵的地方在于聲明了一個(gè)私有變量和私有的構(gòu)造方法,然后再在這個(gè)類里面new自己,就避免了在其他地方重復(fù)實(shí)例化的問(wèn)題。這個(gè)時(shí)候我們已經(jīng)沒(méi)法直接new Database了,我們只能通過(guò)調(diào)用get Instance方法來(lái)建立連接。這里順帶講一下PHP的鏈?zhǔn)讲僮鞯膶?shí)現(xiàn)。在很多框架比如用完26個(gè)字母就不知道怎么辦的thinkPHP和Laravel中對(duì)數(shù)據(jù)庫(kù)的操作可以使用鏈?zhǔn)讲僮?,這樣可以使代碼更為優(yōu)雅。具體實(shí)現(xiàn)就是使用return this;,這樣就可以用where($where)->order($order)->limit(1);來(lái)代替多行語(yǔ)句。
    Laravel使用了三目運(yùn)算符來(lái)代替if,顯得更為優(yōu)雅。


    注冊(cè)模式

    解決全局共享和交換對(duì)象的問(wèn)題。實(shí)際上就是把實(shí)例好的對(duì)象放進(jìn)一個(gè)數(shù)組,在任何地方要用的時(shí)候就去出來(lái)。就好比有一課樹(shù),我們把new好的$GF1,$GF2。。。一個(gè)一個(gè)掛上去,要用的時(shí)候再取出來(lái)。

    http://img1.sycdn.imooc.com//5de3d7bf00017e8b07740886.jpg


    unset在PHP中是關(guān)鍵字,所以用_unset代替。這樣的話我們就要在工廠類中用一下Register::set()方法,把new好的對(duì)象掛樹(shù)上。為了調(diào)用方便,Register中還需要一個(gè)get()方法來(lái)取對(duì)象。

    http://img1.sycdn.imooc.com//5de3d7d40001d38d06420322.jpg


    這樣我們也就不用再去使用單例模式了,直接從注冊(cè)器中取Register::get()。
    Laravel中用了更優(yōu)雅的方式。

    http://img1.sycdn.imooc.com//5de3d7ec0001292b09560760.jpg



    查看全部
  • //Spl棧?先進(jìn)后出
    $stack?=?new?SplStack();
    $stack->push("data1?\r\n");
    $stack->push("data2?\r\n");
    echo?$stack->pop();
    echo?$stack->pop();
    
    //Spl?隊(duì)列?先進(jìn)先出
    $queue?=?new?SplQueue();
    $queue->enqueue("queue-data1?\r\n");
    $queue->enqueue("queue-data2?\r\n");
    
    
    echo?$queue->dequeue();
    echo?$queue->dequeue();
    
    //Spl?堆
    $heap?=?new?SplMinHeap();//最小堆
    $heap->insert("heap-data1?\r\n");
    $heap->insert("heap-data2?\r\n");
    
    echo?$heap->extract();
    echo?$heap->extract();


    查看全部
  • 1.工廠模式,工廠方法或者類生成對(duì)象,而不是在代碼中直接new;

    2.單例模式,使某個(gè)類的對(duì)象僅僅允許創(chuàng)建一個(gè);

    3.注冊(cè)模式,全局共享和交換對(duì)象;


    查看全部
  • PSR-0規(guī)范

    1.命名空間必須與絕對(duì)路徑一致;

    2.類名首字母必須大寫;

    3.除入口文件外,其他".php"必須只有一個(gè)類;


    查看全部

舉報(bào)

0/150
提交
取消
課程須知
要想更好的掌握本課課程的重點(diǎn)內(nèi)容,那么熟知面向?qū)ο蟮南嚓P(guān)知識(shí)是必不可少的。
老師告訴你能學(xué)到什么?
1、了解PHP的11種設(shè)計(jì)模式 2、掌握設(shè)計(jì)模式的編程實(shí)現(xiàn) 3、具備使用設(shè)計(jì)模式進(jìn)行面向?qū)ο缶幊痰哪芰?/dd>

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買該課程,無(wú)需重復(fù)購(gòu)買,感謝您對(duì)慕課網(wǎng)的支持!